[jboss-svn-commits] JBL Code SVN: r23199 - in labs/jbosstm/enterprise: tags and 109 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 29 18:15:19 EDT 2008


Author: skittoli at redhat.com
Date: 2008-09-29 18:15:16 -0400 (Mon, 29 Sep 2008)
New Revision: 23199

Added:
   labs/jbosstm/enterprise/tags/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Feedback.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Chapter.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Feedback.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Feedback.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Feedback.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Feedback.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Appendix.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Chapter.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Feedback.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/JBoss_Transactions_Administrators_Guide.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Revision_History.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/messages.mo
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Feedback.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Feedback.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_A.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_B.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_05.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_06.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_07.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_A.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_B.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_02.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_03.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_04.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_05.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_06.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_07.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_A.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_B.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_02.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_03.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_04.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_05.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_06.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_07.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Details_Panel.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/File_Menu.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Help_Menu.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Independent_Top-Level.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Invoke_Operation_Parameters.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/JMX_Attributes_Operations.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/JMX_Browser.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Menu.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Multiple_Object.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Object_Store.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Object_Store_Split.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Performance_Menu.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Performance_Window.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Persistent_Object_Lifecycle.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Series_Colour.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Series_Menu.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Single_Object.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/TXCore_class_hierarchy.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Window_Menu.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_A.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_B.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_02.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_03.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_04.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_05.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_06.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_07.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_A.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_B.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_02.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_03.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_04.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_05.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_06.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_07.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_A.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_B.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_02.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_03.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_04.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_05.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_06.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_07.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/JBoss_Transactions_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_A.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_B.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_02.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_03.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_04.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_05.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_06.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_07.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/JBoss_TS_Programmers_Guide.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/messages.mo
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_A.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_B.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_02.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_03.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_04.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_05.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_06.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_07.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_A.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_B.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_02.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_03.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_04.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_05.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_06.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_07.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Application_Process.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Crash_Recovery_Architecture.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/ExpiryScanner.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/ObjectStore.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/POA.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/RecoverCoordinator_Object.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recover_Manager_Flow.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recovery.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/RecoveryCoordinator.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recovery_Manager.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Resource-initiated_Recovery.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Transaction_Process.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Appendix.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Transactions_Failure_Recovery_Guide.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/messages.mo
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/JBoss_Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Installing_ArjunaCore.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/JBoss_Transactions_Installation_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/Win_Services.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Installing_ArjunaCore.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/JBoss_Transactions_Installation_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Installing_ArjunaCore.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/JBoss_Transactions_Installation_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Installing_ArjunaCore.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/JBoss_Transactions_Installation_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Installing_ArjunaCore.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/JBoss_Transactions_Installation_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Installing_ArjunaCore.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/JBoss_Transactions_Installation_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Administration_of_ArjunaTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/JBoss_Transactions_JTA_Administration_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Administration_of_ArjunaTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/JBoss_Transactions_JTA_Administration_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Administration_of_ArjunaTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/JBoss_Transactions_JTA_Administration_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Administration_of_ArjunaTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/JBoss_Transactions_JTA_Administration_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Administration_of_ArjunaTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/JBoss_Transactions_JTA_Administration_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Administration_of_ArjunaTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/JBoss_Transactions_JTA_Administration_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/An_Introduction_to_the_JTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Configuring_JBossJTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Examples.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/JBoss_Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/JDBC_and_Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/The_Resource_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transaction_Recovery.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Using_JBossJTA_in_Application_Servers.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Examples.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/An_Introduction_to_the_JTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Configuring_JBossJTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Examples.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/JBoss_Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/JDBC_and_Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/The_Resource_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transaction_Recovery.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Using_JBossJTA_in_Application_Servers.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/An_Introduction_to_the_JTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Configuring_JBossJTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Examples.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/JBoss_Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/JDBC_and_Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/The_Resource_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transaction_Recovery.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Using_JBossJTA_in_Application_Servers.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/An_Introduction_to_the_JTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Configuring_JBossJTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Examples.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/JBoss_Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/JDBC_and_Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/The_Resource_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transaction_Recovery.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Using_JBossJTA_in_Application_Servers.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/An_Introduction_to_the_JTA.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Appendix.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Configuring_JBossJTA.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Examples.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/JDBC_and_Transactions.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Revision_History.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/The_Resource_Manager.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transaction_Recovery.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transactions.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transactions_JTA_Programmers_Guide.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Using_JBossJTA_in_Application_Servers.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/messages.mo
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/An_Introduction_to_the_JTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Configuring_JBossJTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Examples.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/JBoss_Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/JDBC_and_Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/The_Resource_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transaction_Recovery.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Using_JBossJTA_in_Application_Servers.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/An_Introduction_to_the_JTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Configuring_JBossJTA.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Examples.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/JBoss_Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/JDBC_and_Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/The_Resource_Manager.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transaction_Recovery.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transactions.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transactions_JTA_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Using_JBossJTA_in_Application_Servers.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/Makefile
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Getting_Started.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Introduction.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/JBoss_Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Participants.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Stand-alone_Coordinator.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/The_XTS_API.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactional_Web_Services.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactions_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.ent
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/AT_Model.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Back-End_Integration.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_Protocol.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_State_Transitions.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Flow.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Handlers.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Transaction_Control.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Transactional_Service_and_Participant.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Architecture.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Infrastructure.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Coordination_Foundations.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Transaction_Global_View.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Web_Services.png
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Getting_Started.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Introduction.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/JBoss_Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Participants.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Stand-alone_Coordinator.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/The_XTS_API.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactional_Web_Services.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactions_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Getting_Started.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Introduction.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/JBoss_Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Participants.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Stand-alone_Coordinator.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/The_XTS_API.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactional_Web_Services.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactions_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Getting_Started.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Introduction.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Participants.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Stand-alone_Coordinator.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/The_XTS_API.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactional_Web_Services.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactions_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Appendix.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Getting_Started.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Introduction.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Participants.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Revision_History.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Stand-alone_Coordinator.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/The_XTS_API.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactional_Web_Services.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactions_Overview.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactions_Web_Services_Programmers_Guide.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.pot
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/messages.mo
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Getting_Started.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Introduction.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/JBoss_Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Participants.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Stand-alone_Coordinator.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/The_XTS_API.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactional_Web_Services.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactions_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Appendix.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Getting_Started.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Introduction.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/JBoss_Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Participants.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Stand-alone_Coordinator.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/The_XTS_API.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactional_Web_Services.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactions_Overview.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactions_Web_Services_Programmers_Guide.po
   labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
   labs/jbosstm/enterprise/trunk/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Appendix.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Chapter.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Feedback.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Preface.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Revision_History.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Chapter.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Feedback.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Appendix.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Chapter.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Feedback.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Preface.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Revision_History.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Appendix.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Chapter.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Feedback.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Preface.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Revision_History.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Appendix.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Chapter.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Feedback.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Appendix.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Chapter.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Feedback.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/JBoss_Transactions_Administrators_Guide.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Revision_History.pot
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/messages.mo
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Appendix.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Chapter.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Feedback.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Preface.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Revision_History.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Appendix.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Chapter.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Feedback.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/JBoss_Transactions_Administrators_Guide.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Preface.po
   labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Revision_History.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_A.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_B.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Author_Group.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Book_Info.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_02.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_03.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_04.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_05.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_06.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_07.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_A.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_B.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_04.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_05.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_06.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Details_Panel.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/File_Menu.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Help_Menu.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Independent_Top-Level.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Invoke_Operation_Parameters.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/JMX_Attributes_Operations.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/JMX_Browser.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Menu.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Multiple_Object.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Object_Store.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Object_Store_Split.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Performance_Menu.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Performance_Window.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Persistent_Object_Lifecycle.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Series_Colour.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Series_Menu.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Single_Object.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/TXCore_class_hierarchy.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Window_Menu.png
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_A.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_B.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Author_Group.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Book_Info.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_02.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_03.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_04.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_05.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_06.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_07.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_A.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_B.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Author_Group.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Book_Info.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_02.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_03.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_04.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_05.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_06.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_07.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_A.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_B.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_02.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_03.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_04.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_05.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_06.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_07.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_A.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_B.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_02.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_03.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_04.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_05.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_06.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_07.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/JBoss_TS_Programmers_Guide.pot
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/messages.mo
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_A.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_B.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Author_Group.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Book_Info.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_02.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_03.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_04.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_05.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_06.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_07.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_A.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_B.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Author_Group.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Book_Info.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_02.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_03.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_04.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_05.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_06.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_07.po
   labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/JBoss_TS_Programmers_Guide.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Application_Process.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Crash_Recovery_Architecture.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/ExpiryScanner.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/ObjectStore.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/POA.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/RecoverCoordinator_Object.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recover_Manager_Flow.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recovery.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/RecoveryCoordinator.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recovery_Manager.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Resource-initiated_Recovery.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Transaction_Process.png
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Transactions_Failure_Recovery_Guide.po
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Appendix.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Architecture_of_the_Recovery_Manager.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Author_Group.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Book_Info.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/How_JBossTS_managers_the_OTS_Recovery_Protocol.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Preface.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Transactions_Failure_Recovery_Guide.pot
   labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/messages.mo
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/Win_Services.png
   labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Examples.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/Makefile
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.ent
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/AT_Model.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Back-End_Integration.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_Protocol.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_State_Transitions.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Flow.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Handlers.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Transaction_Control.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Transactional_Service_and_Participant.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Architecture.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Infrastructure.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Coordination_Foundations.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Transaction_Global_View.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Web_Services.png
   labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg
Log:
added new eap docs repo - trunk and tags - skittoli at redhat.com

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,15 @@
+#Makefile for JBoss_Transactions_Administrators_Guide
+
+XML_LANG	= en-US
+
+BRAND	= JBoss
+
+
+OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN 
+
+CHUNK_FIRST = 0
+CHUNK_SECTION_DEPTH = 1
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:29+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Revisionshistorie"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:30+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "FF0000 Headgear Dokumentationsgruppe"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:31+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "JBoss Transaktions-API 4.2.3 Administrationshandbuch"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "Bei diesem Buch handelt es sich um die JBoss Enterprise Application Platform Ausgabe des JBoss Transaktions Administrator-Handbuchs"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1015 @@
+# translation of Chapter.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:32+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"Abgesehen davon, dass sichergestellt werden sollte, dass das Runtime-System normal ausgeführt wird, wird wenig durchgängige Aufsicht für die JBoss Transaktions-Software benötigt. "
+"Ein paar Punkte jedoch sind erforderlich:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr "Die aktuelle Implementierung des JBoss TA Systems bietet weder Sicherheit noch Schutz für Daten. Die im JBoss Transaktions-Objectspeicher gespeicherten Objekte gehören (in der Regel) demjenigen Benutzer, der die Anwendung ausgeführt hat bei der diese erzeugt wurden. Die \"Object Store\" und \"Object Manager\" Facilities unternehmen keinen Versuch auch nur die recht eingeschränkte Art von Schutz zu bieten, die Unix/Windows bietet. Es findet keine Prüfung der Benutzer- oder Gruppen-IDs beim Zugriff auf Objekte zum Lesen oder Schreiben statt."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr "Persistente Objekte, die im \"Object Store\" erstellt wurde, bleiben bestehen, außer die StateManager.destroy Methode wird am Objekt aufgerufen oder ein Anwendungsprogramm löscht diese explizit. Das bedeutet, dass der \"Object Store\" nach und nach Müll ansammelt (insbesondere während der Applikationsentwicklung und Testphasen). Derzeit existiert noch kein automatisierter Müllbereinigungsmechanismus. Desweiteren wurde das Problem der Referenzen in Schwebe noch nicht angegangen. Dies bedeutet, ein persistentes Objekt A, kann die Uid für ein anderes persistentes Objekt B in seiner passiven Repräsentation auf Disk gespeichert haben. Nichts hindert eine Anwendung daran B zu löschen, selbst wenn A nach wie vor eine Referenz darauf enthält. Wird A anschließend aktiviert und versucht auf B zuzugreifen, so wird ein Runtime-Error gemeldet."
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr "Derzeit existiert kein Support für Versionskontrolle von Objekten oder Datenban-Rekonfiguration im Falle von Veränderungen von Klassenstrukturen. Dies ist ein komplexes Forschungsgebiet, auf das wir nicht eingegangen sind. Momentan ist es so, dass Sie - wenn Sie die Definition einer Klasse persistenter Objekte ändern - vollständig verantwortlich dafür sind sicherzustellen, dass bestehend Instanzen des Objekts im Object Store in eine neue Repräsentation konvertiert werden. Die JBoss Transactions Software kann Verweise auf alte Objekt-Stati durch neue Operationsversionen und umgekehrt weder aufspüren noch korrigieren."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "\"Object Store\"-Management ist von kritischer Bedeutung für den Transkations-Service."
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "ObjectStore-Management"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"Innerhalb der Transaktions-Service-Installation wird der \"Object Store\" regelmäßig aktualisiert wenn Transaktionen erstellt werden oder wenn transaktionale Objekte für Java verwendet werden. In einer von Fehlern freien Umgebung sollten die einzigen, innerhalb des \"Object Store\" befindlichen Objekt-Stati diejenigen sein, die Objekte repräsentieren, die mit der \"Transactional Objects for Java\"-API erstellt wurden. Falls es jedoch zu Fehlern kommt, so können Transkationsprotokolle im \"Object Store\" erhalten bleiben, bis Crash Recovery "
+"Facilities die Transaktionen aufgelöst haben, die sie repräsentieren. Als solches ist es sehr wichtig, dass die Inhalte des \"Object Store\" nicht ohne die nötige Sorgfalt gelöscht werden, da es sonst unmöglich wird zweifelhafte Transkationen aufzulösen. Wenn mehrere Nutzer sich denselben \"Object Store\" teilen ist es wichtig, dass sie sich dessen bewusst sind und die Inhalte des \"Object Store\" nicht einfach löschen in der Annahme, dass es sich dabei um eine exklusive Ressource handelt."
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "JBoss Transactions Runtime Informationen"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr "Jedes Modul, aus dem JBoss Transactions besteht, besitzt eine Klasse namens Info. Diese Klassen liefern eine einzelne toString-Methode, die ein XML-Dokument wiedergibt, das die Konfigurationsinformationen für dieses Modul repräsentiert. Also zum Beispiel:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "\"Failure Recovery\"-Administration"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"Das Failure-Recovery Subsystem von JBoss Transactions stellt sicher, dass Ergebnisse einer Transaktion konsistent an allen betroffenen Ressourcen durch die Transaktion angewendet werden, selbst wenn "
+"Applikationsprozesse oder die diese hostende Maschine abstürzen oder Netzwerk-Konnektivität verlieren. Im Falle eines Crashs der Maschine "
+"(des Systems) oder Netzwerkversagens findet die Recovery nicht statt, ehe das System oder Netzwerk nicht wieder hergestellt sind, aber die ursprüngliche Anwendung muss nicht neu gestartet werden – Recovery Verantwortlichkeiten werden an den Recovery "
+"Manager Prozess delegiert (siehe unten). Recovery nach Fehlschlagen erfordert, dass Informationen über die Transaktion und und die involvierten Ressources das Fehlschlagen überstehen und anschließend zugänglich sind: Diese Informationen werden im ActionStore aufbewahrt, der Teil des ObjectStore ist."
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "Wird der ObjectStore gelöscht oder bearbeitet, ist eine Recovery eventuell nicht möglich."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr "Bis der Recovery-Vorgang vollständig ist sind Ressourcen, die zum Zeitpunkt des Fehlschlagens durch eine laufende Transaktion betroffen waren, möglicherweise unzugänglich. Für Datenbank-Ressourcen kann dies als Tabellen oder Reihen gemeldet werden, die durch “in-doubt transactions” (zweifelhafte Transaktionen) gehalten werden. Für TransactionalObjects für Java-Ressourcen schlägt ein Versuch das transaktionale Objekt (\"Transactional Object\") zu aktivieren (wie beim Versuch eine Sperre zu erhalten) fehl."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Der Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"Das Failure-Recovery Subsystem von JBoss Transactions erfordert, dass der eigenständige Recovery Manager Prozess für jeden ObjectStore läuft (in der Regel einer für jeden Node im Netzwerk auf dem JBoss Transactions "
+"Applikationen laufen). Die RecoveryManager-Datei befindet sich in der arjunacore jar-Datei innerhalb des Pakets <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. Um den Recovery Manager zu starten, geben Sie folgenden Befehl ein:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "Wird das <literal>-test</literal>-Flag mit dem Recovery Manager benutzt, so zeigt es eine “Ready”-Nachricht an, wenn initialisiert, d.h."
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -Test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Konfiguration des Recovery-Managers"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"Der RecoveryManager liest die in der <filename>arjuna."
+"properties</filename>-Datei definierten Properties und liest dann auch die Property-Datei <filename>RecoveryManager.properties</filename>, vom selben Verzeichnis wie in der \"arjuna\" Properties-Datei gefunden. Ein Eintrag für eine Property in der RecoveryManager Properties-Datei setzt einen Eintrag für dieselbe Property in der Haupt-TransactionService-Properties-Datei außer Kraft. Die meisten der Einträge sind spezifisch für den Recovery Manager."
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"Eine Standard-Version der <filename>RecoveryManager.properties</filename> ist Teil der Distribution – dies kann ohne weitere Bearbeitung verwendet werden, "
+"außer vielleicht die \"Debug Tracing\"-Felder zur Fehlersuche (siehe unten in der Ausgabe). Der Rest dieses Abschnitts geht auf Themen ein, die beim Einstellen der Properties auf andere Werte relevant sind (in der Reihenfolge ihres Auftretens in der Standardversion der Datei)"
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Ausgabe"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr "Es ist wahrscheinlich, dass Installationen irgendeine Form von Ausgabe vom RecoveryManager fordern werden, um einen Eintrag darüber zu besitzen, welche Recovery-Aktivität stattgefunden hat. Der RecoveryManager verwendet den Verfolgungsmechanismus für die Protokollierung, der durch das Arjuna Common Logging Framework (CLF) bereitgestellt wird und ein High-Level Interface bietet, das zwischen bestehenden APIs wie Jakarta log4j oder JDK 1.4 Protokollierungs-API bestehende Differenzen verbirgt. CLF lenkt sämtliche Protokollierung via dem Apache Commons Logging Framework um, und es wird angenommen, dass die Konfiguration durch dieses Framework erfolgt."
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"Mit den CLF-Applikationen erfolgen Protokollaufrufe an Logger-Objekte. Logger können Protokollebenen verwenden, um zu entscheiden, ob sie sich für eine bestimmte Protokollnachricht interessieren. Jede Protokollnachricht besitzt eine zugehörige Protokollebene, die die Wichtigkeit und Dringlichkeit einer Protokollnachricht angibt. Der Satz möglicher Protokollebenen lautet DEBUG, INFO, WARN, ERROR und FATAL. Definierte Ebenen werden gemäß ihren ganzzahligen Werten wie folgt geordnet: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr "Die CLF liefert eine Erweiterung zum Filtern von Protokollnachrichten entsprechend feinerer Granularität, die eine Anwendung definieren kann. Das bedeutet, dass wenn dem Logger eine Protokollnachricht mit der DEBUG-Ebene geliefert wird, zusätzliche Bedingungen festgelegt werden können, um zu bestimmen, ob die Protokollnachricht aktiviert ist oder nicht. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "Diese Bedingungen gelten nur, wenn die DEBUG-Ebene aktiviert ist und die durch die Anwendung durchgeführte Protokollanfrage Debugging-Granularität festlegt."
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "Wenn aktiviert, wird \"Debugging\" (Fehlersuche) konditional auf drei Variablen gefiltert:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "\"Debugging\"-Ebene: Hier wird die Protokolllierungsanfrage mit der DEBUG-Ebene generiert, zum Beispiel aus Konstruktoren oder Grundmethoden."
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "Sichtbarkeitsebene: Die Sichtbarkeit des Konstruktors, der Methode, usw., durch die das Debugging generiert wird."
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Facility Code: Zum Beispiel das Paket oder Sub-Modul innerhalb dessen Debugging generiert wird, zum Beispiel der \"Object Store\"."
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"Diesen Variablen nach definiert die CLF drei Interfaces. Ein bestimmtes Produkt kann seine eigenen Klassen entsprechend seiner eigenen feineren Granularität implementieren. JBoss Transactions verwenden die durch CLF bereitgestellte Standard Debugging-Ebene und die Standard Sichtbarkeitsebene, definieren jedoch ihren eigenen Facility "
+"Code. JBoss Transactions verwendet die seinen Logger Objekten (DEBUG) zugewiesene Standardebene. Es verwendet jedoch die feineren Debugging Features um Debug-Nachrichten zu aktivieren oder zu deaktivieren. Feinere Debugging Werte, die von JBoss Transactions verwendet werden, sind unten definiert:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Debugging-Ebene – JBoss Transactions verwendet die in der <classname>com.arjuna.common.util.logging.DebugLevel</classname>-Klasse definierten Standardwerte"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING:  No Diagnostik. Ein Logger-Objekt dem diese Werte zugeordnet sind verwirft alle Debug-Anfragen"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Volle Diagnostik. Ein Logger-Objekt dem diese Werte zugeordnet sind gestattet alle Debug-Anfragen wenn der Facility-Code und die Sichtbarkeitsebene mit denen durch den Logger gestatteten übereinstimmen."
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Weitere Debugging-Werte sind:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnostik von Konstruktoren."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnostik von Finalizers."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnostik von Konstruktoren und Finalizers."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS:  Diagnostik von Functions."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnostik von Operators, wie etwa \"Equals\"."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnostik von Functions und Operations."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnostik von allen nicht-trivialen Operations."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnostik von trivialen Functions."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnostik von trivialen Operations und Operatoren."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnostik von allen trivialen Vorgängen."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Sichtbarkeitsebene – JBoss Transactions verwendet die in der <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>-Klasse definierten Standardwerte"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  Keine Diagnostik"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  Nur von privaten Methoden."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  nur von geschützten Methoden."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   nur von öffentlichen Methoden."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+msgstr "VIS_JBoss_Transactions_Administrators_Guide   nur von Paketmethoden."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Volle Diagnostik"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Facility Code – JBoss Transactions verwendet die folgenden in der <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>-Klasse definierten Werte"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (atomische Aktion Kernmodul)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (Status-Management (Zwischenspeicher) Klassen)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (Status-Management und StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (geteilte Speicherimplementierungsklassen)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (allgemeine Klassen)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr "FAC_CRASH_RECOVERY = 0x00000800 (ausführliches Verfolgen von Crash Recovery Modul und Klassen)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (Threading Klassen)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 und 2.0 Support)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (normale Ausgabe für Crash Recovery Manager)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "Um die ordnungsgemäße Ausgabe zu gewährleisten ist es notwendig einige der feineren Debug-Properties explizit in der <filename>CommonLogging.xml</filename>-Datei einzustellen, um durch das JBoss Transactions Modul herausgegebene Protokollnachrichten zu aktivieren."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr "Durch den RecoveryManager gemeldete Nachrichten, die den Start und das periodische Verhalten beschreiben, werden mittels der INFO-Ebene ausgegeben. Ist eine andere Debug-Verfolgung gewünscht so sollte die feinkörnigere Debugging-Ebene entsprechend eingestellt sein. Folgende Konfiguration etwa in der CommonLogging.xml, aktiviert alle Debug-Nachrichten, die mit dem Crash Recovery Protokoll zusammenhängen und durch das JBoss Transactions Modul herausgegeben wurden."
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "Zwei Logger-Objekte werden bereitgestellt, eines davon verwaltet I18N Nachrichten, das andere nicht."
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "Das Einstellen der normalen Recovery-Nachrichten auf die INFO-Ebene gestattet dem RecoveryManager eine bescheidene Ebene der Berichterstattung zu erstellen. Falls nichts passiert, so meldet es nur den Eintrag in jedes Modul für jeden periodischen Pass. Um durch den Recovery Manager produzierte INFO-NAchrichten zu deaktivieren, könnte die Protokollierungsebene auf eine höhere Ebene gesetzt werden: ERROR. Das Einstellen der Ebene auf ERROR bedeutet, dass der RecoveryManager nur Error, Warning oder Meldungen zu unbehebbaren Fehlern produziert."
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Periodische Recovery"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"Der RecoveryManager scant den ObjectStore und andere Speicherorte von Information und sucht nach Transaktionen und Ressourcen, die Recovery benötigen oder benötigen könnten. Die Scans und Recovery Durchführung werden von Recovery Modulen durchgeführt (Instanzen von Klassen, die das com.arjuna.ats."
+"arjuna.recovery.RecoveryModule-Interface implementieren), jedes mit der Verantwortung für eine bestimmte Kategorie von Transaktion oder Ressource. Der Satz verwendeter Recovery-Module wird dynamisch geladen, wobei im RecoveryManager gefundene Properties verwendet werden."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"Das Interface besitzt zwei Methoden: <literal>periodicWorkFirstPass</literal> und "
+"<literal>periodicWorkSecondPass</literal>. Zu einem Intervall (definiert durch Property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), ruft der RecoveryManager die erste Pass-Methode an jeder Property auf und wartet dann kurze Zeit (definiert durch Property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), und ruft dann den zweiten Pass jedes Moduls auf. In der Regel scant das Modul beim ersten Pass, das Modul scant (z.B. den relevanten Teil des ObjectStore), um fragliche Transaktionen oder Ressourcen zu finden (d.h sind Teil des Festschreibungsprozesses). Beim zweiten Pass ist es möglich, wenn einige dieser Posten nach wie vor fraglich sind, dass der ursprüngliche Anwendungsprozess gecrasht ist und der Posten ein Kandidat für Recovery ist."
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"Ein Versuch durch den RecoveryManager eine noch in dem/den ursprünglichen Prozess/-en fortschreitende Transaktion wiederherzustellen, wird aller Wahrscheinlichkeit nach die Konsistenz brechen. Entsprechend verwenden die Recovery-Module einen Mechanismus (implementiert im "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname>-Paket), um zu überprüfen, ob der ursprüngliche Prozess noch aktiv ist und die Transaktion noch fortschreitet. Der RecoveryManager fährt nur mit der Recovery fort, wenn der ursprüngliche Prozess nicht mehr vorhanden ist oder - falls noch bestehend - die Transktion beendet ist. (Crasht ein Server-Prozess oder eine Maschine, der Transaktions-initiierende Prozess aber überlebt, so schließt die Transaktion in der Regel eine Warnung generierend ab. Die Recovery einer solchen Transaktion obliegt der Verantwortung des "
+"RecoveryManagers)."
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"Es ist ganz klar wichtig, die Intervallperioden korrekt einzustellen. Die gesamte Iterationszeit wird die Summe der <literal>periodicRecoveryPeriod</literal>, <literal>recoveryBackoffPeriod</literal> und die Länge an Zeit, die erforderlich ist, die Speicher zu scannen und die Recovery aufgefundener Transaktionen für sämtliche Recovery-Module zu versuchen. Die für den Recovery-Versuch aufgewendete Zeit kann Connection-Timeouts während der Kommunikation mit Prozessen oder Maschinen die abgestürzt sind oder auf die nicht zugegriffen werden kann beinhalten (weswegen es Mechanismen im Recovery-System gibt, um zu vermeiden, dass für immer die Recovery derselben Transaktion erfolgt). Die gesamte  Iteration hat Einfluss darauf, wie lange auf eine Ressource nach dem Fehlschlagen nicht zugegriffen werden kann – "
+"<literal>periodicRecoveryPeriod</literal> sollte entsprechend eingestellt sein (der Standard ist 120 Sekunden). Die <literal>recoveryBackoffPeriod</literal> kann vergleichsweise kurz sein (der Standard ist 10 Sekunden) – ihr Zweck ist hauptsächlich die Anzahl von Transaktionen zu reduzieren, die Kandidaten für Recovery sind einen Aufruf an den ursprünglichen Prozess benötigen, um zu sehen, ob sie noch laufen."
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "In früheren Versionen von JBoss Transactions existierte kein Kontaktmechanismus und der Backoff-Zeitraum musste lang genug sein, damit Transaktionen nicht \"im Flug\" abgefangen wurden. Ab 3.0 besteht dieses Risiko nicht mehr."
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"Zwei Recovery-Module (Implementierungen des <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname>-Interface) werden mit "
+"JBoss Transactions geliefert, und unterstützen verschiedene Aspekte von Transaction Recovery einschließlich JDBC-Recovery. Fortgeschrittene Benutzer können ihre eigenen Recovery-Module erstellen und diese beim Recovery Manager registrieren. Die Recovery-Module werden unter Verwendung von Properties, die mit “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>” beginnen beim RecoveryManager registriert. Diese werden bei jedem Pass der periodischen Recovery in der Sortierordnung der Property-Namen aufgerufen – es ist daher möglich die Reihenfolge vorauszusagen (aber beachten Sie, dass es zu einem Fehlschlagen in einem Anwendungsprozess kommen kann, während ein periodischer Recovery-Pass gerade am Laufen ist). Die Standard Recovery-Erweiterungseinstellungen lauten:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Entfernen nicht mehr gültiger Einträge"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"Betrieb des Recovery Subsystems wird zu einigen Einträgen im "
+"ObjectStore führen, die im normalen Fortschreiten nicht entfernt werden. Der RecoveryManager besitzt eine Einrichtung zum Scannen und Entfernen sehr alter Posten. Scans und Entfernungen werden durch Implementierungen des <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname>-Interface durchgeführt. Implementierungen dieses Interface werden durch Eingabe des Klassennamens als Wert einer Property, deren Name mit <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname> beginnt, geladen. Der RecoveryManager ruft die "
+"<command>scan()</command>-Methode bei jeder geladenen Expiry Scanner Implementierung zu einem durch die Property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname> festgelegten Intervall auf. Dieser Wert wird in Stunden angegeben – der Standard ist 12. Ein <classname>expiryScanInterval</classname>-Wert von Null unterdrückt jegliches Expiry-Scanning. Falls der Wert wie geliefert positiv ist, so wird der erste Scan durchgeführt wenn RecoveryManager startet; ist der Wert negativ, wird der erste Scan hinausgezögert bis der erste Intervall vorüber ist (unter Verwendung des absoluten Wertes)"
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Die Arten von Posten, die nach einem Verfallsdatum gescannt werden sind:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager Posten: Einer von diesen wird durch jeden Applikationsprozess erstellt, der JBoss Transactions verwendet – sie enthalten Informationen, die es dem RecoveryManager gestatten zu bestimmen, ob der Prozess, der die Transaktion initiiert hat, noch aktiv ist und welches der Transaktionsstatus ist. Der Verfallszeitpunkt für diese wird durch die <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname>-Property  gesetzt (in Stunden – Standard ist 12, Null bedeutet, dass sie nie verfallen). Der Verfallszeitpunkt sollte größer als die Lebensdauer eines einzelnen JBoss Transactions verwendenden Prozesses sein."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Die Properties für den Expiry-Scanner für diese sind:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Fehler und Ausnahmen"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "In diesem Abschnitt behandeln wir die Fehler und Ausnahmen, die während einer transaktionalen Anwendung gemeldet werden können, und liefern mögliche Anzeichen für deren Ursachen."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY: Die Anwendung besitzt nicht mehr genug Speicher (ein "
+"<classname>OutOfMemoryError</classname> wirde gemeldet) und JBoss Transactions hat versucht, eine Bereinigung durchzuführen (durch Ausführen des \"Garbage Collector\") ehe die Ausname erneut gemeldet wurde. Es handelt sich dabei wahrscheinlich um ein vorübergehendes Problem und ein erneuter Versuch des Aufrufs sollte erfolgreich sein."
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr "com.arjuna.ats.arjuna.exceptions.FatalError: Ein Fehler ist aufgetreten, was bedeutet, dass das Transaktionssystem heruntergefahren werden muss. Ehe dieser Fehler gemeldet wird, wird der Transaktionsdienst sichergestellt haben, dass alle laufenden Transaktionen zurückgesetzt wurden. Falls abgefangen, so sollte die Anwendung eine Bereinigung durchführen und beenden. Wird weitere Arbeit versucht, so ist es möglich, dass die Anwendundskonsistenz verletzt wird."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr "com.arjuna.ats.arjuna.exceptions.LicenceError: Es wurde ein Versuch unternommen, den Transaktionsdienst auf eine Weise zu verwenden, die nicht konsistent mit der aktuellen Lizenz ist. Der Transaktionsdienst gestattet kein weiteres Fortschreiten bestehender oder neuer Transaktionen."
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr "com.arjuna.ats.arjuna.exceptions.ObjectStoreError: Es kam zu einem Fehler, während der Transaktionsdienst versucht hat, den Object Store zu verwenden. Ein weiteres Fortschreiten ist nicht möglich."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "Object Store Warnungen zu Zugriffsproblemen auf Stati können während der normalen Ausführung von Crash Recovery auftreten. Dies ist das Ergebnis mehrerer gleichzeitiger Versuche eine Recovery an derselben Transaktion durchzuführen. Sie können gefahrlos ignoriert werden."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Auswahl der JTA-Implementierung"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "Es werden jetzt zwei Varianten der JTA-Implementierung bereitgestellt und sind über dasselbe Interface zugänglich. Diese sind:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+"Eine rein lokale JTA, die nur die Ausführung nicht distrubuiter JTA Transaktionen gestattet. Dieses ist die einzige mit dem JBoss Transactions "
+"Produkt verfügbare Version."
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "Eine Remote, CORBA-basierte JTA, die die Ausführung distrubuiter JTA Transaktionen gestattet. Diese Version ist nur mit dem ArjunaJTS Produkt verfügbar und erfordert ein CORBA ORB."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "beide dieser Implementierungen sind vollständig kompatibel mit dem transaktionalen JDBC-Driver, der mit JBoss Transactions geliefert wird."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "Um die lokale JTA-Implementierung zu wählen, müssen folgende Schritte durchgeführt werden:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"vergewissern Sie sich, dass die Property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> auf <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal> eingestellt ist."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"vergewissern Sie sich, dass die Property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> auf <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal> eingestellt ist."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "Diese Einstellungen sind die Standardwerte für die Pproperties und müssen nicht festgelegt werden, wenn die lokale Implementierung benötigt wird."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,41 @@
+# translation of Feedback.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:03+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Feedback"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"Falls Sie einen Fehler in diesem Handbuch entdecken oder eine Idee dazu haben, wie wir dieses verbessern können, dann würden wir uns sehr darüber freuen von Ihnen zu hören! Senden Sie einen Bericht an "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> zum Produkt: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Komponente: <emphasis>Doc</"
+"emphasis>. Falls Sie einen Vorschlag zur Verbesserung der Dokumentation haben, versuchen Sie so spezifisch wie möglich zu sein. Falls Sie einen Fehler gefunden haben, schließen Sie die Abschnittsnummer mit ein sowie einen Teil des umgebenden Textes, damit wir diesen leichter finden können."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,133 @@
+# translation of Preface.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:28+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Vorwort"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "Inhalte dieses Handbuchs"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+"Das Handbuch zur Administration enthält Informationen dazu, wie JBoss "
+"Transactions API 4.2.3 gehandhabt wird."
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Zielgruppe"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Dieses Handbuch ist von größtem Nutzen für Ingenieure, die für die Administration von JBoss Transactions API 4.2.3 Installationen verantwortlich sind."
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Voraussetzungen"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Um JBoss Transactions zu administrieren ist es zunächst notwendig sich dessen bewusst zu werden, dass dieses hinsichtlich der Transaktionsfunktionalität stark von ArjunaCore abhängt. Daher ist es wichtig, das Administrationshandbuch von ArjunaCore zu lesen, ehe Sie sich an der Administration von JBoss Transactions versuchen."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organisation"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Dieses Handbuch enthält die folgenden Kapitel:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr ""
+"Kapitel 1, Administration von JBoss Transaktionen: Beschreibt die Administration von "
+"JBoss Transaktionen, primär durch Auswahl der Variante von JTA-Implementierung: "
+"rein lokal oder Remote (distribuierte Transaktionen gestattend)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Zusätzliche Dokumentation"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+"Zusätzlich zu diesem Handbuch sind folgende Handbücher im Dokumentationssatz von JBoss "
+"Transactions API 4.2.3 enthalten:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 Release Notes: Liefert die letzten und aktuellsten Information zu JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 Installationshandbuch: Dieses Handbuch enthält Anleitungen zur Installation von JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "JBoss Transactions API 4.2.3 Programmer’s Guide: Liefert Richtlinien zum Schreiben von Anwendungen."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,23 @@
+# translation of Revision_History.po to
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-20 15:07+1000\n"
+"Last-Translator: \n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup><corpauthor> Red Hat Documentation Group </corpauthor></authorgroup>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="JBoss_Transactions_Administrators_Guide-Product_Name_and_Version">
+<title>JBoss Transactions Administrators Guide</title>
+	
+	<!--<para>JBTA-AG-12/10/07</para>-->
+	
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract><para>This book is the JBoss Enterprise Application Platform edition of the JBoss Transactions Administrators Guide</para>
+	</abstract>
+	<corpauthor><inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/redhat-logo.svg" />
+			</imageobject>
+		</inlinemediaobject>
+	</corpauthor><copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<!--xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /-->
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+
+
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Chapter.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Chapter.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Chapter.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,299 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+	
+<chapter><title>Introduction</title>
+	<para>Apart from ensuring that the run-time system is executing normally, there is little continuous administration needed for the JBoss Transactions software. There are a few points however, that should be made:</para>
+	<para><orderedlist>
+		<listitem>
+			<para>The present implementation of the JBoss TA system provides no security or protection for data. The objects stored in the JBoss Transactions object store are (typically) owned by the user who ran the application that created them. The Object Store and Object Manager facilities make no attempt to enforce even the limited form of protection that Unix/Windows provides. There is no checking of user or group IDs on access to objects for either reading or writing.</para>
+		</listitem>
+		<listitem>
+			<para>Persistent objects created in the Object Store never go away unless the StateManager.destroy method is invoked on the object or some application program explicitly deletes them. This means that the Object Store gradually accumulates garbage (especially during application development and testing phases). At present we have no automated garbage collection facility. Further, we have not addressed the problem of dangling references. That is, a persistent object, A, may have stored a Uid for another persistent object, B, in its passive representation on disk. There is nothing to prevent an application from deleting B even though A still contains a reference to it. When A is next activated and attempts to access B, a run-time error will occur.</para>
+		</listitem>
+		<listitem>
+			<para>There is presently no support for version control of objects or database reconfiguration in the event of class structure changes. This is a complex research area that we have not addressed. At present, if you change the definition of a class of persistent objects, you are entirely responsible for ensuring that existing instances of the object in the Object Store are converted to the new representation. The JBoss Transactions software can neither detect nor correct references to old object state by new operation versions or vice versa.</para>
+		</listitem>
+		<listitem>
+			<para>Object store management is critically important to the transaction service.</para>
+		</listitem>
+	</orderedlist></para>
+
+
+<section><title>ObjectStore management</title>
+	<para>Within the transaction service installation, the object store is updated regularly whenever transactions are created, or when Transactional Objects for Java is used. In a failure free environment, the only object states which should reside within the object store are those representing objects created with the Transactional Objects for Java API. However, if failures occur, transaction logs may remain in the object store until crash recovery facilities have resolved the transactions they represent. As such it is very important that the contents of the object store are not deleted without due care and attention, as this will make it impossible to resolve in doubt transactions. In addition, if multiple users share the same object store it is important that they realise this and do not simply delete the contents of the object store assuming it is an exclusive resource.</para>
+</section>
+
+<section><title>JBoss Transactions runtime information</title>
+	<para>Each module that comprises JBoss Transactions possesses a class called Info. These classes all provide a single toString method that returns an XML document representing the configuration information for that module. So, for example:</para>
+	
+	<programlisting>&lt;module-info name="arjuna"&gt;
+	&lt;source-identifier&gt;unknown&lt;/source-identifier&gt;
+	&lt;build-information&gt;
+	   Arjuna Technologies [mlittle] (Windows 2000 5.0)
+	&lt;/build-information&gt;
+	&lt;version&gt;unknown&lt;/version&gt;
+	&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;
+	&lt;notes&gt;&lt;/notes&gt;
+	&lt;configuration&gt;
+		&lt;properties-file dir="null"&gt;arjuna.properties&lt;/properties-file&gt;
+		&lt;object-store-root&gt;null&lt;/object-store-root&gt;
+	&lt;/configuration&gt;
+&lt;/module-info&gt;</programlisting>
+</section>
+
+<section><title>Failure recovery administration</title>
+	<para>The failure recovery subsystem of JBoss Transactions will ensure that results of a transaction are applied consistently to all resources affected by the transaction, even if any of the application processes or the machine hosting them crash or lose network connectivity. In the case of machine (system) crash or network failure, the recovery will not take place until the system or network are restored, but the original application does not need to be restarted – recovery responsibility is delegated to the Recovery Manager process (see below). Recovery after failure requires that information about the transaction and the resources involved survives the failure and is accessible afterward: this information is held in the ActionStore, which is part of the ObjectStore.</para>
+	<para><orderedlist>
+		<listitem>
+			<para>If the ObjectStore is destroyed or modified, recovery may not be possible.</para>
+		</listitem>
+	</orderedlist></para>
+	<para>Until the recovery procedures are complete, resources affected by a transaction that was in progress at the time of the failure may be inaccessible. For database resources, this may be reported as tables or rows held by “in-doubt transactions”. For TransactionalObjects for Java resources, an attempt to activate the Transactional Object (as when trying to get a lock) will fail.</para>
+	
+	<section><title>The Recovery Manager</title>
+		<para>The failure recovery subsystem of JBoss Transactions requires that the stand-alone Recovery Manager process be running for each ObjectStore (typically one for each node on the network that is running JBoss Transactions applications). The RecoveryManager file is located in the arjunacore jar file within the package <classname>com.arjuna.ats.arjuna.recovery.RecoveryManager</classname>. To start the Recovery Manager issue the following command:</para>
+		<para><command>java com.arjuna.ats.arjuna.recovery.RecoveryManager</command></para>
+		<para>If the <literal>-test</literal> flag is used with the Recovery Manager then it will display a “Ready” message when initialised, i.e.,</para>
+		<para><command>java com.arjuna.ats.arjuna.recovery.RecoveryManager -test</command></para>
+	</section>
+	
+	<section><title>Configuring the Recovery Manager</title>
+		<para>The RecoveryManager reads the properties defined in the <filename>arjuna.properties</filename> file and then also reads the property file <filename>RecoveryManager.properties</filename>, from the same directory as it found the arjuna properties file. An entry for a property in the RecoveryManager properties file will override an entry for the same property in the main TransactionService properties file. Most of the entries are specific to the Recovery Manager.</para>
+		<para>A default version of <filename>RecoveryManager.properties</filename> is supplied with the distribution – this can be used without modification, except possibly the debug tracing fields (see below, Output). The rest of this section discusses the issues relevant in setting the properties to other values (in the order of their appearance in the default version of the file)</para>
+
+		<section><title>Output</title>
+		<para>
+			It is likely that installations will want to have some form of output from the RecoveryManager, to provide a record of what recovery activity has taken place. RecoveryManager uses the logging tracing mechanism provided by the Arjuna Common Logging Framework (CLF), which provides a high level interface that hides differences that exist between existing logging APIs such Jakarta log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache Commons Logging framework and configuration is assumed to occur through that framework.
+		</para>
+		<para>
+			With the CLF applications make logging calls on logger objects. Loggers may use logging Levels to decide if they are interested in a particular log message. Each log message has an associated log Level, that gives the importance and urgency of a log message. The set of possible Log Levels are DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL.
+		</para>
+		<para>
+			The CLF provides an extension to filter logging messages according to finer granularity an application may define. That is, when a log message is provided to the logger with the DEBUG level, additional conditions can be specified to determine if the log message is enabled or not.
+		</para>
+		<para>
+			<orderedlist>
+			<listitem>
+				<para>These conditions are applied if and only the DEBUG level is enabled and the log request performed by the application specifies debugging granularity. </para>
+			</listitem>
+		</orderedlist>
+	</para>
+		<para>When enabled, Debugging is filtered conditionally on three variables: </para>
+		<para><orderedlist>
+			<listitem>
+				<para>Debugging level: this is where the log request with the DEBUG Level is generated from, e.g., constructors or basic methods. </para>
+			</listitem>
+			<listitem>
+				<para>Visibility level: the visibility of the constructor, method, etc. that generates the debugging. </para>
+			</listitem>
+			<listitem>
+				<para>Facility code: for instance the package or sub-module within which debugging is generated, e.g., the object store. </para>
+			</listitem>
+		</orderedlist></para>
+		<para>According to these variables the CLF defines three interfaces. A particular product may implement its own classes according to its own finer granularity. JBoss Transactions uses the default Debugging level and the default Visibility level provided by CLF, but it defines its own Facility Code. JBoss Transactions uses the default level assigned to its logger objects (DEBUG). However, it uses the finer debugging features to disable or enable debug messages. Finer debugging values used by the JBoss Transactions are defined below:</para>
+		<para>Debugging level – JBoss Transactions uses the default values defined in the class <classname>com.arjuna.common.util.logging.DebugLevel</classname></para>
+		<para><orderedlist>
+			<listitem>
+				<para>NO_DEBUGGING:  No diagnostics. A logger object assigned with this values discard all debug requests </para>
+			</listitem>
+			<listitem>
+				<para>FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value allows all debug requests if the facility code and the visibility level match those allowed by the logger.</para>
+			</listitem>
+		</orderedlist></para>
+		<para>Additional Debugging Values are: </para>
+		<para><orderedlist>
+			<listitem>
+				<para>CONSTRUCTORS: Diagnostics from constructors. </para>
+			</listitem>
+			<listitem>
+				<para>DESTRUCTORS:  Diagnostics from finalizers. </para>
+			</listitem>
+			<listitem>
+				<para>CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers. </para>
+			</listitem>
+			<listitem>
+				<para>FUNCTIONS:  Diagnostics from functions. </para>
+			</listitem>
+			<listitem>
+				<para>OPERATORS:  Diagnostics from operators, such as equals. </para>
+			</listitem>
+			<listitem>
+				<para>FUNCS_AND_OPS: Diagnostics from functions and operations. </para>
+			</listitem>
+			<listitem>
+				<para>ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations. </para>
+			</listitem>
+			<listitem>
+				<para>TRIVIAL_FUNCS:  Diagnostics from trivial functions. </para>
+			</listitem>
+			<listitem>
+				<para>TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators. </para>
+			</listitem>
+			<listitem>
+				<para>ALL_TRIVIAL:  Diagnostics from all trivial operations. </para>
+			</listitem>
+		</orderedlist></para>
+		<para>Visibility level – JBoss Transactions uses the default values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname></para>
+		<para><orderedlist>
+			<listitem>
+				<para>VIS_NONE:  No Diagnostic </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PRIVATE :  only from private methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PROTECTED  only from protected methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PUBLIC   only from public methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PACKAGE   only from package methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_ALL:  Full Diagnostic </para>
+			</listitem>
+		</orderedlist></para>
+		<para>Facility Code – JBoss Transactions uses the following values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname></para>
+		<para><orderedlist>
+			<listitem>
+				<para>FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_ABSTRACT_REC = 0x00000008 (abstract records).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_OBJECT_STORE = 0x00000010 (object store implementations).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_STATE_MAN = 0x00000020 (state management and StateManager).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_SHMEM = 0x00000040 (shared memory implementation classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_GENERAL = 0x00000080 (general classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_THREADING = 0x00002000 (threading classes).</para>
+			</listitem>
+			<listitem>
+				<para>AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager).</para>
+			</listitem>
+		</orderedlist></para>
+		<para>To ensure appropriate output, it is necessary to set some of the finer debug properties explicitly in the <filename>CommonLogging.xml</filename> file, to enable logging messages issued by the JBoss Transactions module.</para>
+		<para>Messages describing the start and the periodical behavior made by the RecoveryManager are output using the INFO level. If other debug tracing is wanted, the finer debugging level should be set appropriately. For instance, the following configuration, in the CommonLogging.xml, enables all debug messages related to the Crash Recovery protocol and issued by the JBoss Transactions module. </para>
+		
+		<programlisting>&lt;!-- Common logging related properties. --&gt;
+&lt;property
+  name="com.arjuna.common.util.logging.DebugLevel"
+  value="0x00000000"/&gt;
+&lt;propertyname="com.arjuna.common.util.logging.FacilityLevel"
+  value="0xffffffff"/&gt;
+&lt;propertyname="com.arjuna.common.util.logging.VisibilityLevel"
+  value="0xffffffff"/&gt;</programlisting>
+		<para><orderedlist>
+			<listitem>
+				<para>Two logger objects are provided, one manages I18N messages and a second does not.</para>
+			</listitem>
+		</orderedlist></para>
+		<para>Setting the normal recovery messages to the INFO level allows the RecoveryManager producing a moderate level of reporting. If nothing is going on, it just reports the entry into each module for each periodic pass. To disable INFO messages produced by the Recovery Manager, the logging level could be set to the higher level: ERROR. Setting the level to ERROR means that the RecoveryManager will only produce error, warning or fatal messages.</para>
+	</section>
+</section>
+	
+	<section><title>Periodic Recovery</title>
+		<para>The RecoveryManager scans the ObjectStore and other locations of information, looking for transactions and resources that require, or may require recovery. The scans and recovery processing are performed by recovery modules, (instances of classes that implement the com.arjuna.ats.arjuna.recovery.RecoveryModule interface), each with responsibility for a particular category of transaction or resource. The set of recovery modules used are dynamically loaded, using properties found in the RecoveryManager property file.</para>
+		<para>The interface has two methods: <literal>periodicWorkFirstPass</literal> and <literal>periodicWorkSecondPass</literal>. At an interval (defined by property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</classname>), the RecoveryManager will call the first pass method on each property, then wait for a brief period (defined by property <classname>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the second pass of each module. Typically, in the first pass, the module scans (e.g. the relevant part of the ObjectStore) to find transactions or resources that are in-doubt (i.e. are part way through the commitment process). On the second pass, if any of the same items are still in-doubt, it is possible the original application process has crashed and the item is a candidate for recovery. </para>
+		<para>An attempt, by the RecoveryManager, to recover a transaction that is still progressing in the original process(es) is likely to break the consistency. Accordingly, the recovery modules use a mechanism (implemented in the <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</classname> package) to check to see if the original process is still alive, and if the transaction is still in progress. The RecoveryManager only proceeds with recovery if the original process has gone, or, if still alive, the transaction is completed. (If a server process or machine crashes, but the transaction-initiating process survives, the transaction will complete, usually generating a warning. Recovery of such a transaction is the RecoveryManager’s responsibility).</para>
+		<para>It is clearly important to set the interval periods appropriately. The total iteration time will be the sum of the <literal>periodicRecoveryPeriod</literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it takes to scan the stores and to attempt recovery of any in-doubt transactions found, for all the recovery modules. The recovery attempt time may include connection timeouts while trying to communicate with processes or machines that have crashed or are inaccessible (which is why there are mechanisms in the recovery system to avoid trying to recover the same transaction for ever). The total iteration time will affect how long a resource will remain inaccessible after a failure – <literal>periodicRecoveryPeriod</literal> should be set accordingly (default is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be comparatively short (default is 10 seconds) – its purpose is mainly to reduce the number of transactions that are candidat!
 es for recovery and which thus require a “call to the original process to see if they are still in progress</para>
+		<para><orderedlist>
+			<listitem>
+				<para>In previous versions of JBoss Transactions there was no contact mechanism, and the backoff period had to be long enough to avoid catching transactions in flight at all. From 3.0, there is no such risk.</para>
+			</listitem>
+		</orderedlist></para>
+		<para>Two recovery modules (implementations of the <classname>com.arjuna.ats.arjuna.recovery.RecoveryModule</classname> interface) are supplied with JBoss Transactions, supporting various aspects of transaction recovery including JDBC recovery. It is possible for advanced users to create their own recovery modules and register them with the Recovery Manager. The recovery modules are registered with the RecoveryManager using properties that begin with “<classname>com.arjuna.ats.arjuna.recovery.RecoveryExtension</classname>”. These will be invoked on each pass of the periodic recovery in the sort-order of the property names – it is thus possible to predict the ordering (but note that a failure in an application process might occur while a periodic recovery pass is in progress). The default Recovery Extension settings are:</para>
+		
+		<programlisting>com.arjuna.ats.arjuna.recovery.recoveryExtension1 = 
+  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule
+
+com.arjuna.ats.arjuna.recovery.recoveryExtension2 = 
+  com.arjuna.ats.txoj.recovery.TORecoveryModule</programlisting>
+	</section>
+	
+	<section><title>Expired entry removal</title>
+		<para>The operation of the recovery subsystem will cause some entries to be made in the ObjectStore that will not be removed in normal progress. The RecoveryManager has a facility for scanning for these and removing items that are very old. Scans and removals are performed by implementations of the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> interface. Implementations of this interface are loaded by giving the class name as the value of a property whose name begins with <classname>com.arjuna.ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the <command>scan()</command> method on each loaded Expiry Scanner implementation at an interval determined by the property <classname>com.arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is given in hours – default is 12. An <classname>expiryScanInterval</classname> value of zero will suppress any expiry scanning. If the value as supplied is positive, the first scan!
  is performed when RecoveryManager starts; if the value is negative, the first scan is delayed until after the first interval (using the absolute value)</para>
+		<para>The kinds of item that are scanned for expiry are:</para>
+		<para>TransactionStatusManager items : one of these is created by every application process that uses JBoss Transactions – they contain the information that allows the RecoveryManager to determine if the process that initiated the transaction is still alive, and what the transaction status is. The expiry time for these is set by the property <classname>com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours – default is 12, zero means never expire). The expiry time should be greater than the lifetime of any single JBoss Transactions-using process.</para>
+		<para>The Expiry Scanner properties for these are:</para>
+		
+		<programlisting>com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =
+  com.arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner</programlisting></section>
+</section>
+
+<section><title>Errors and Exceptions</title>
+	<para>In this section we shall cover the types of errors and exceptions which may be thrown or reported during a transactional application and give probable indications of their causes.</para>
+	<para><orderedlist>
+		<listitem>
+			<para>NO_MEMORY: the application has run out of memory (thrown an <classname>OutOfMemoryError</classname>) and JBoss Transactions has attempted to do some cleanup (by running the garbage collector) before re-throwing the exception. This is probably a transient problem and retrying the invocation should succeed.</para>
+		</listitem>
+		<listitem>
+			<para>com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which means that the transaction system must shut down. Prior to this error being thrown the transaction service will have ensured that all running transactions have rolled back. If caught, the application should tidy up and exit. If further work is attempted, application consistency may be violated.</para>
+		</listitem>
+		<listitem>
+			<para>com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to use the transaction service in a manner inconsistent with the current licence. The transaction service will not allow further forward progress for existing or new transactions.</para>
+		</listitem>
+		<listitem>
+			<para>com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while the transaction service attempted to use the object store. Further forward progress is not possible.</para>
+		</listitem>
+		<listitem>
+			<para>Object store warnings about access problems on states may occur during the normal execution of crash recovery. This is the result of multiple concurrent attempts to perform recovery on the same transaction. It can be safely ignored. </para>
+		</listitem>
+	</orderedlist></para>
+</section>
+
+<section><title>Selecting the JTA implementation</title>
+	<para>Two variants of the JTA implementation are now provided and accessible through the same interface. These are:</para>
+	<para><orderedlist>
+		<listitem>
+			<para>A purely local JTA, which only allows non-distributed JTA transactions to be executed. This is the only version available with the JBoss Transactions product.</para>
+		</listitem>
+		<listitem>
+			<para>A remote, CORBA-based JTA, which allows distributed JTA transactions to be executed. This version is only available with the ArjunaJTS product and requires a supported CORBA ORB.</para>
+		</listitem>
+	
+		<listitem>
+			<para>both of these implementations are fully compatible with the transactional JDBC driver provided with JBoss Transactions.</para>
+		</listitem>
+	</orderedlist></para>
+	<para>In order to select the local JTA implementation it is necessary to perform the following steps:</para>
+	<para><orderedlist>
+		<listitem>
+			<para>make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</literal> is set to <literal>com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</literal>.</para>
+		</listitem>
+		<listitem>
+			<para>make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</literal> is set to <literal>com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</literal>.</para>
+		</listitem>
+	
+		<listitem>
+			<para>these settings are the default values for the properties and do not need to be specified if the local implementation is required.</para>
+		</listitem>
+	</orderedlist>
+</para>
+</section>
+</chapter>
+
+	
+	
+
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Feedback.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Feedback.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Feedback.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+<section id="Feedback">
+	<title>Feedback</title>
+	<para>
+			If you spot a typo in this guide, or if you have thought of a way to make this manual better, we would love to hear from you! Submit a report in <ulink url="http://jira.jboss.com/jira/browse/JBPAPP">JIRA</ulink> against the Product: JBoss Enterprise Application Platform, Version: <replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</emphasis>. If you have a suggestion for improving the documentation, try to be as specific as possible. If you have found an error, include the section number and some of the surrounding text so we can find it easily.
+	</para>
+</section>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "JBoss_Enterprise_Application_Platform">
+<!ENTITY BOOKID "JBoss_Transactions_Administrators_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,48 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="JBoss_Transactions_Administrators_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include>
+		
+	<section><title>What This Guide Contains</title>
+		<para>The Administration Guide contains information on how to administer JBoss Transactions API 4.2.3.</para>
+	</section>
+	<section><title>Audience</title>
+		<para>This guide is most relevant to engineers who are responsible for administration of JBoss Transactions API 4.2.3 installations.</para>
+	</section>
+	
+	<section><title>Prerequisites</title>
+		<para>In order to administer JBoss Transactions it is first necessary to understand that it relies on ArjunaCore for a lot of the transaction functionality. As such, it is important to read the ArjunaCore Administration Guide before attempting to administer JBoss Transactions.</para>
+	</section>
+	
+	<section><title>Organization</title>
+		<para>This guide contains the following chapters:</para>
+		<para><orderedlist>
+			<listitem>
+				<para>Chapter 1, Administration of JBoss Transactions: describes how to administer JBoss Transactions, mainly by selecting the variant of JTA implementation: pure local or remote (allowing distributed transactions).</para>
+			</listitem>
+		</orderedlist></para>
+	</section>
+	
+	<section><title>Additional Documentation</title>
+		<para>In addition to this guide, the following guides are available in the JBoss Transactions API 4.2.3 documentation set:</para>
+		<para><orderedlist>
+			<listitem>
+				<para>JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking information about JBoss Transactions API 4.2.3.</para>
+			</listitem>
+			<listitem>
+				<para>JBoss Transactions API 4.2.3 Installation Guide: This guide provides instructions for installing JBoss Transactions API 4.2.3.</para>
+			</listitem>
+			<listitem>
+				<para>JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for writing applications. </para>
+			</listitem>
+		</orderedlist></para>
+	</section>
+</preface>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,29 @@
+# translation of Appendix.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:13+0000\n"
+"PO-Revision-Date: 2008-06-19 10:16+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Historial de revisiones"
+
+#. Tag: para
+#: Appendix.xml:10
+#, no-c-format
+msgid "<para>TBD</para>"
+msgstr "<para>TBD</para>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,35 @@
+# translation of Author_Group.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:32+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "Grupo de documentación Headgear FF0000 "
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,45 @@
+# translation of Book_Info.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:37+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "Manual de administración de JBoss Transactions API 4.2.3 "
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+"Este libro es la edición de JBoss Enterprise Application Platform del manual de administración de JBoss "
+"Transactions "
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1280 @@
+# translation of Chapter.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:13+0000\n"
+"PO-Revision-Date: 2008-06-20 11:40+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"Aparte de asegurarse de que el sistema en tiempo de ejecución se encuentra "
+"ejecutando normalmente, se necesita muy poca administración continua para el "
+"software de JBoss Transactions. Sin embargo hay unos pocos puntos a notar:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+"La implementación presente del sistema de JBoss TA no proporciona seguridad "
+"o protección para datos. Los objetos almacenados en el almacenamiento de "
+"objetos de JBoss Transactions son (usualmente) de propiedad del usuario que "
+"ejecutó la aplicación que los creó. El almacenamiento de objetos y el "
+"administrador de objetos no intentan reforzar ni siquiera la forma limitada "
+"de protección que Unix/Windows proporcionan. No hay verificación de IDs de "
+"usuarios o grupos al acceder los objetos ya esa para leer o escribir."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+"Los objetos persistentes creados en el almacenamiento de objetos nunca "
+"desaparecen a menos de que el método StateManager.destroy sea invocado en el "
+"objeto o que alguna aplicación los borre de manera explícita. Esto significa "
+"que el almacenamiento de objetos gradualmente acumula basura (especialmente "
+"durante el desarrollo de la aplicación y las fases de prueba). Hasta el "
+"momento no contamos con una característica de recolección de basura de "
+"manera automatizada. Además no hemos resuelto el problema de referencias "
+"colgantes. Es decir, un objeto persistente, A, puede haber almacenado un Uid "
+"para otro objeto persistente, B, en su representación pasiva en el disco. No "
+"hay nada que evite que una aplicación borre a B aunque A todavía contenga la "
+"referencia a este. Cuando A sea activado e intente acceder a B, tendrá lugar "
+"un error en tiempo de ejecución. "
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+"Hasta el momento no hay soporte para el control de versión de objetos ni la "
+"reconfiguración de bases de datos en el evento de que la estructura de la "
+"clase cambie. Esta es un área de investigación bastante compleja que aún no "
+"hemos abordado. Actualmente si cambia la definición de una clase de objetos "
+"persistentes, es completamente responsable de asegurarse de que las "
+"instancias existentes del objeto en el almacenamiento de objetos sean "
+"convertidas a la nueva representación. El software de JBoss Transactions no "
+"puede detectar ni corregir referencias en estados de objetos viejos por "
+"medio de nuevas versiones de operaciones o viceversa."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr ""
+"La administración de almacenamiento de objetos es críticamente importante "
+"para el servicio de transacciones. "
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "Administración de ObjectStore"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"Dentro de la instalación del servicio de transacciones, el almacenamiento de "
+"objetos se actualiza regularmente cuando las transacciones se crean o cuando "
+"se utilizan objetos transaccionales para Java. En un entorno libre de "
+"fallas, los únicos estados de objetos que deben residir dentro del "
+"almacenamiento de objetos son los que representan los objetos creados con "
+"los objetos transaccionales para Java API. Sin embargo, si tienen lugar "
+"fallas, los registros de las transacciones pueden permanecer en el "
+"almacenamiento de objetos hasta que las utilidades de recuperación de fallos "
+"hayan resuelto las transacciones que estos representan. Por lo tanto es muy "
+"importante que el contenido del almacenamiento de objetos no se borre sin la "
+"debida atención ya que esto hará imposible el resolver transacciones en "
+"duda. Además si múltiples usuarios comparten el mismo almacenamiento de "
+"objetos es importante que esten concientes de esto y que no simplemente "
+"borren el contenido del almacenamiento de objetos asumiendo que es un "
+"recurso exclusivo. "
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "Información en tiempo de ejecución de JBoss Transactions"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+"Cada módulo que comprende JBoss Transactions posee una clase llamada Info. "
+"Todas estas clases proporcionan un sólo método toString que retorna un "
+"documento XML representando la información de la configuración para ese "
+"módulo. Por ejemplo:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "Administración de recuperación de fallas"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"El subsistema de recuperación de fallas de JBoss Transactions se asegurará "
+"de que los resultados de una transacción se apliquen consistentemente a todos "
+"los recursos afectados por la transacción, incluso si cualquiera de los "
+"procesos de la aplicación o la máquina anfitriona se cuelga o si pierde "
+"conectividad con la red. En el caso en que una máquina (sistema) se cuelgue o "
+"que la red falle, la recuperación no tendrá lugar hasta que el sistema o la "
+"red se reestablezcan, pero la aplicación original no necesita ser reiniciada "
+"- la responsabilidad de la recuperación se delega al proceso administrador "
+"de recuperación (vea a continuación). La recuperación después de una falla "
+"requiere que la información sobre la transacción y los recursos involucrados "
+"sobreviva el fallo y sea accesible después: esta información se encuentra en "
+"el ActionStore, el cual es parte del ObjectStore."
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+"Si el ObjectStore se destruye o se modifica, es posible que no se pueda "
+"recuperar."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"Hasta que los procedimientos de recuperación esten completos, puede que los "
+"recursos afectados por una transacción que se encontraba en progreso cuando "
+"la falla ocurrió sean inaccesibles. Para los recursos de bases de datos, "
+"esto se puede reportar como tablas o filas que se encuentran en "
+"“transacciones dudosas”. Para TransactionalObjects para recursos Java, el "
+"intentar activar el objeto transaccional (como cuando trata de obtener un "
+"bloqueo) fallará. "
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "El administrador de recuperación "
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"El subsistema de recuperación de fallas de JBoss Transactions requiere que "
+"el proceso autónomo del administrador de recuperación esté ejecutando para "
+"cada ObjectStore (usualmente uno para cada nodo en la red en que se "
+"encuentra ejecutando aplicaciones de JBoss Transactions). El archivo del "
+"RecoveryManager se encuentra en el archivo jar arjunacore dentro del paquete "
+"<classname>com.arjuna.ats.arjuna.recovery.RecoveryManager</classname>. Para "
+"iniciar el administrador de recuperación emita el siguiente comando: "
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+"Si la etiqueta <literal>-test</literal> se utiliza con el administrador de "
+"recuperación entonces aparecerá un mensaje que dice “Ready” por ejemplo "
+"cuando se inicializa."
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Configuración del administrador de recuperación"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"El RecoveryManager lee las propiedades definidas en el archivo "
+"<filename>arjuna.properties</filename> y luego también lee el archivo de "
+"propiedades <filename>RecoveryManager.properties</filename>, desde el mismo "
+"directorio desde donde encontró el archivo de propiedades arjuna. Una "
+"entrada para una propiedad en el archivo de propiedades RecoveryManager "
+"sobreescribirá una entrada para la misma propiedad en el archivo de "
+"propiedades principal TransactionService. La mayoría de las entradas son "
+"especificas para el administrador de recuperación. "
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"Junto con la distribución se proporciona una versión predeterminada de "
+"<filename>RecoveryManager.properties</filename> - esto se puede utilizar sin "
+"modificaciones, a excepción posiblemente de los campos de rastreo de "
+"depuración (vea a continuación, salida). El resto de esta sección discute "
+"los puntos relevantes al configurar las propiedades a otros valores (en "
+"orden de aparición en la versión predeterminada del archivo). "
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Salida"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"Es posible que las instalaciones querrán tener alguna forma de salida del "
+"RecoveryManager, para proporcionar un registro de la actividad de "
+"recuperación que ha tenido lugar. El RecoveryManager utiliza el mecanismo de "
+"rastreo de registros que el Arjuna Common Logging Framework (CLF) "
+"proporciona, el cual brinda una interfaz de alto nivel que esconde las "
+"diferencias que existen entre las APIs de registro ya presentes tal como "
+"Jakarta log4j o JDK 1.4 logging API. CLF indirecta todos los registros a "
+"través de Apache Commons Logging framework y se asume que la configuración "
+"ocurre por medio de ese marco de trabajo. "
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"Con el CLF, las aplicaciones realizan llamadas de registro en objetos de "
+"registro. Los registros pueden utilizar niveles de registro para decidir si "
+"están interesados en un mensaje de registro en particular. Cada mensaje de "
+"registro tiene un nivel de registro asociado, esto proporciona la "
+"importancia y la urgencia de un mensaje de registro. El grupo de niveles de "
+"registro posibles son DEBUG, INFO, WARN, ERROR y FATAL. Los niveles "
+"definidos se ordenan de acuerdo con sus valores enteros así: DEBUG &lt; INFO "
+"&lt; WARN &lt; ERROR &lt; FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"El CFL proporciona una extensión para filtrar mensajes de registro de "
+"acuerdo con las especificaciones detalladas que una aplicación puede "
+"definir. Es decir, cuando se le pasa un mensaje de registro al registro con "
+"un nivel DEBUG, se pueden establecer condiciones adicionales para determinar "
+"si el mensaje de registro está activado o no. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+"Estas condiciones se aplican sólamente si el nivel DEBUG está activado y la "
+"petición de registro realizada por la aplicación especifica granuralidad de "
+"depuración. "
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+"Cuando está activado, la depuración se filtra condicionalmente de acuerdo "
+"con tres variables:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+"Nivel de depuración: este es desde donde se genera la petición de registro "
+"del nivel DEBUG, por ejemplo, métodos básicos o constructores. "
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+"Nivel de visibilidad: la visiblidad del constructor, método, etc que genera "
+"la depuración. "
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+"Código de utilidad: por ejemplo, el paquete o sub-módulo dentro del cual se "
+"genera la depuración, por ejemplo, el almacenamiento de objetos. "
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"De acuerdo con estas variables el CLF define tres interfaces. Un producto en "
+"particular puede implementar sus propias clases de acuerdo con su propio "
+"nivel de detalle. JBoss Transactions utiliza el nivel predeterminado "
+"Debugging y el nivel predeterminado Visibility que CLF proporciona, pero "
+"define su propio Facility Code. JBoss Transactions usa el nivel "
+"predeterminado asignado a sus objetos de registro (DEBUG). Sin embargo, "
+"utiliza las características de depuración más detalladas para desactivar o "
+"activar los mensajes de depuración. Los valores de depuración más detallados "
+"que JBoss Transactions utiliza están definidos a continuación: "
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+"Nivel de depuración – JBoss Transactions utiliza los valores predeterminados "
+"definidos en la clase <classname>com.arjuna.common.util.logging.DebugLevel</"
+"classname>"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+"NO_DEBUGGING:  No hay diagnóstico. Un objeto de registro asignado con este valor "
+"descarta todas las peticiones de depuración. "
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+"FULL_DEBUGGING: Diagnóstico completo. Un objeto de registro con este valor "
+"permite todas las peticiones de depuración si el facility code y el nivel de "
+"visibilidad coinciden con aquellos permitidos por el registro."
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Los valores de depuración adicionales son: "
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnóstico de los constructores."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnóstico de los finalizadores."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnóstico de los constructores y los finalizadores."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS:  Diagnóstico desde las funciones."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnóstico desde los operadores como por ejemplo iguales."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnóstico desde las funciones y operaciones."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnóstico desde todas las operaciones no triviales."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnóstico desde las funciones triviales."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnóstico desde operaciones triviales y operadores."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnóstico desde todas las operaciones triviales."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Nivel de visibilidad – JBoss Transactions utiliza los valores "
+"predeterminados definidos en la clase <classname>com.arjuna.common.util."
+"logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  No hay diagnóstico"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  Sólo desde métodos privados."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  Sólo desde métodos protegidos."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   Sólo desde métodos públicos."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr "VIS_PACKAGE   Sólo desde métodos de paquetes"
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Diagnóstico completo"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Facility Code – JBoss Transactions utiliza los siguientes valores definidos "
+"en la clase <classname>com.arjuna.common.util.logging.VisibilityLevel</"
+"classname>"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (módulo central de acción atómica)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (clases (buffer) de administración de estado)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (registros abstractos)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+"FAC_OBJECT_STORE = 0x00000010 (implementaciones de almacenamiento de "
+"objetos)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (administración de estado y StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (clases de implementación de memoria compartida)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (clases generales)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (rastro detallado del módulo de recuperación "
+"de fallos y clases)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (hilos de clases)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (soporte JDBC 1.0 y 2.0)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (salida normal para el administrador de "
+"recuperación de fallas)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+"Para asegurar una salida apropiada, es necesario establecer algunas de las "
+"propiedades de depuración más detalladas de manera explícita en el archivo "
+"<filename>CommonLogging.xml</filename>, para habilitar los mensajes de "
+"registro que el módulo JBoss Transactions emite."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+"Los mensajes que describen el inicio y el comportamiento periódico que el "
+"RecoveryManager realiza son la salida utilizando el nivel INFO. Si quiere "
+"otro rastreo de depuración, el nivel de depuración detallado se debe "
+"configurar apropiadamente. Por ejemplo, la siguiente configuración en el "
+"CommonLogging.xml, activa todos los mensajes de depuración relacionados con "
+"el protocolo Crash Recovery y emitido por el módulo JBoss Transactions. "
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+"Se proporcionan dos objetos de registro, uno administra los mensajes de I18N "
+"y el otro no. "
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+"El configurar los mensajes de recuperación normal al nivel INFO le permite "
+"al RecoveryManager producir un nivel moderado de reporte. Si no sucede nada, "
+"simplemente reporta la entrada en cada módulo para cada pase periódico. Para "
+"desactivar los mensajes INFO que el administrador de recuperación produce, "
+"el nivel de registro se puede configurar al nivel más alto: ERROR. El "
+"establecer el nivel a ERROR significa que el RecoveryManager sólo producirá "
+"mensajes de error, de advertencia o de error fatal. "
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Recuperación periódica"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"El RecoveryManager escanea el ObjectStore y otros lugares de información, "
+"buscando transacciones y recursos que requieren o que pueden llegar a "
+"requerir recuperación. El procesamiento de recuperación y de escaneo es "
+"realizado por los módulos de recuperación (instancias de clases que "
+"implementan la interfaz com.arjuna.ats.arjuna.recovery.RecoveryModule), cada "
+"una con responsabilidad de una categoría en particular de transacción o "
+"recurso. El grupo de módulos de recuperación utilizados se cargan "
+"dinámicamente utilizando las propiedades encontradas en el archivo de "
+"propiedades del RecoveryManager."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"La interfaz tiene dos métodos: <literal>periodicWorkFirstPass</literal> y "
+"<literal>periodicWorkSecondPass</literal>. En un intervalo (definido por la "
+"propiedad <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), el RecoveryManager llamará el primer método pass en cada "
+"propiedad y luego espera durante un breve periodo (definido por la propidad "
+"<classname>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>) "
+"y luego llama al segundo método pass de cada módulo. Usualmente en el primer método pass, "
+"el módulo escanea (por ejemplo, la parte relevante del ObjectStore) para "
+"encontrar transacciones o recursos que son dudosos (por ejemplo, se "
+"encuentran en cierta parte del proceso de guardado). En el segundo método pass, si "
+"cualquiera de los mismos objetos están en duda, es posible que el proceso de "
+"aplicación original se haya caído y que el objeto sea un candidato para "
+"recuperación."
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"Un intento del RecoveryManager de recuperar una transacción que aún está en curso en el proceso original con mucha probabilidad romperá la "
+"consistencia. Así mismo, los módulos de recuperación utilizan un mecanismo "
+"(implementado en el paquete <classname>com.arjuna.ats.arjuna.recovery."
+"TransactionStatusManager</classname>) para chequear si el proceso original "
+"todavía está vivo y si la transacciín aún se encuentra en progreso. El "
+"RecoveryManager sólo procede con la recuperación si el proceso original se "
+"ha ido o si aún está vivo entonces la transacción se completa, (si el "
+"proceso de un servidor o si una máquina se cuelga, pero el proceso de inicio "
+"de la transacción sobrevive, la transacción se completará, usualmente "
+"generando una advertencia. La recuperación de tal transacción es la "
+"responsabilidad del RecoveryManager)."
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"Es claramente muy importante el establecer los periodos de los intervalos "
+"apropiadamente. El tiempo de iteración total será la suma del "
+"<literal>periodicRecoveryPeriod</literal>, <literal>recoveryBackoffPeriod</"
+"literal> y la cantidad de tiempo que toma el escanear los almacenamientos y "
+"el tratar de recuperar cualquier transacción dudosa que se encuentre para "
+"todos los módulos de recuperación. El tiempo de intento de recuperación "
+"puede incluir la expiración de la conexión mientras que el tratar de "
+"comunicarse con procesos o máquinas que se han colgado o que son "
+"inaccesibles (razón por la cual hay mecanismos en el sistema de "
+"recuperación para evitar el tratar de recuperar la misma transacción "
+"indefinidamente). El tiempo de iteración total afectará el tiempo que un "
+"recurso permanecerá inaccesible después de una falla – "
+"<literal>periodicRecoveryPeriod</literal> se debe establecer de acuerdo con "
+"esto (por defecto es 120 segundos). El <literal>recoveryBackoffPeriod</"
+"literal> puede ser comparativamente corto (por defecto es 10 segundos) – su "
+"propósito principal es reducir el número de transacciones que son candidatas "
+"para la recuperación y que por lo tanto requieren una “llamada al proceso "
+"original para ver si aún se encuentran en progreso. "
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+"En versiones anteriores de JBoss Transactions no había un mecanismo de "
+"contacto y el periodo de espera tenía que ser lo suficientemente largo para "
+"evitar las transacciones en vuelo. Desde 3.0 no hay tal riesgo. "
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"Dos módulos de recuperación (implementaciones de la interfaz <classname>com."
+"arjuna.ats.arjuna.recovery.RecoveryModule</classname>) vienen junto con "
+"JBoss Transactions, soportando varios aspectos de la recuperación de "
+"transacciones incluyendo la recuperación JDBC. Para usuarios avanzados es "
+"posible crear sus propios módulos de recuperación y registralos con el "
+"Recovery Manager. Los módulos de recuperación están registrados con el "
+"RecoveryManager utilizando propiedades que empiezan por “<classname>com."
+"arjuna.ats.arjuna.recovery.RecoveryExtension</classname>”. Estos se "
+"invocarán en cada pase de la recuperación periódica en el orden corto de los "
+"nombres de propiedades – por lo tanto es posible predecir el orden (pero "
+"note que una falla en un proceso de la aplicación puede ocurrir mientras "
+"tiene lugar un pase de recuperación periódica). La configuración "
+"predeterminada de Recovery Extension es:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Eliminación de entradas vencidas"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"La operación del subsistema de recuperación hará que se realicen algunas "
+"entradas en el ObjectStore que no se eliminarán en el progreso normal. El "
+"RecoveryManager tiene una utilidad para escanear estos y para eliminar "
+"objetos que son muy viejos. Los escaneos y las eliminaciones se realizan "
+"por medio de implementaciones de la interfaz <classname>com.arjuna.ats.arjuna."
+"recovery.ExpiryScanner</classname>. Las implementaciones de esta interfaz se "
+"cargan dando el nombre de la clase como el valor de una propiedad cuyo "
+"nombre empieza por <classname>com.arjuna.ats.arjuna.recovery.expiryScanner</"
+"classname>. El RecoveryManager llama al método <command>scan()</command> en "
+"cada implementación Expiry Scanner cargada en un intervalo determinado por "
+"la propiedad <classname>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"classname>. Este valor se da en horas – por defecto es 12. Un valor "
+"<classname>expiryScanInterval</classname> de cero suprime cualquier escaneo "
+"de vencimiento. Si el valor tal como se proporciona es positivo entonces el "
+"primer escaneo se realiza cuando inicia el RecoveryManager, si el valor es "
+"negativo entonces el primer escaneo se retrasa hasta después del primer "
+"intervalo (utilizando el valor absoluto)."
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Las clases de objetos que se escanean por vencimiento son:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager items :se crea uno de estos por cada proceso de "
+"aplicación que utilice JBoss Transactions – estos contienen la información "
+"que le permite al RecoveryManager determinar si el proceso que inició la "
+"transacción todavía esta vivo y también determina el estatus de la "
+"transacción. El tiempo de vencimiento para estos está establecido por la "
+"propiedad <classname>com.arjuna.ats.arjuna.recovery."
+"transactionStatusManagerExpiryTime</classname> (en horas – por defecto es "
+"12, cero significa que nunca expira). El tiempo de vencimiento debe ser "
+"mayor que el tiempo de vida de cualquier proceso que esté utilizando JBoss "
+"Transactions."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Las propiedades del Expiry Scanner para estos son: "
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Errores y excepciones"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+"En esta sección vamos a cubrir los tipos de errores y excepciones que se "
+"pueden presentar o reportar durante una aplicación transaccional y daremos "
+"indicaciones probables de sus causas."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY: la aplication no tiene más memoria (presenta un "
+"<classname>OutOfMemoryError</classname>) y JBoss Transactions ha intentado "
+"realizar alguna limpieza (ejecutando el colector de basura) antes de volver "
+"a presentar la excepción. Probablemente este es un problema transitorio y "
+"con volver a intentar la invocación debe ser suficiente."
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: ha occurrido un error lo cual "
+"significa que el sistema de transacciones se debe apagar. Antes de que este "
+"error se presente el servicio de transacciones se asegurará de que todas las "
+"transacciones ejecutándose se hayan deshecho. Si lo alcanza, la aplicación "
+"debe poner todo en orden y termina. Si se intenta hacer más cosas entonces "
+"la consistencia de la aplicación se puede llegar a violar."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: se ha intentado utilizar el "
+"servicio de transacciones de una manera inconsistente con la licencia "
+"actual. El servicio de transacciones no permitirá progresar más alla para "
+"transacciones existentes o nuevas. "
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: un error ocurrió mientras "
+"el servicio de transacciones intentaba utilizar el almacenamiento de "
+"objectos. No es posible avanzar más allá."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+"Las advertencias del almacenamiento de objetos sobre problemas de acceso en "
+"estados pueden ocurrir durante la ejecución normal de recuperación de un "
+"sistema que se ha colgado. Este es el resultado de múltiples intentos "
+"simultáneos para realizar la recuperación en la misma transacción. Se puede "
+"ignorar de manera segura."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Selección de la implementación JTA"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+"Ahora se proporcionan dos variantes de la implementación JTA y son "
+"accesibles a través de la misma interfaz. Estas son:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+"Una JTA meramente local, la cual sólo permite que se ejecuten transacciones "
+"JTA no distribuidas. Esta es la única versión disponible con el producto "
+"JBoss Transactions. "
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+"Una JTA remota basada en CORBA, la cual permite la ejecución de "
+"transacciones JTA distribuidas. Esta versión sólo está disponible con el "
+"producto ArjunaJTS y requiere un CORBA ORB soportado."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+"Ambas implementaciones son completamente compatibles con el controlador JDBC "
+"transaccional que JBoss Transactions proporciona."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+"Con el fin de seleccionar la implementación JTA local es necesario realizar "
+"los siguientes pasos: "
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"Asegúrese de que la propiedad <literal>com.arjuna.ats.jta."
+"jtaTMImplementation</literal> se configura como <literal>com.arjuna.ats."
+"internal.jta.transaction.arjunacore.TransactionManagerImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"Asegúrese de que la propiedad <literal>com.arjuna.ats.jta."
+"jtaUTImplementation</literal> se configura como <literal>com.arjuna.ats."
+"internal.jta.transaction.arjunacore.UserTransactionImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""
+"Esta configuración son los valores predeterminados para las propiedades y no "
+"es necesario especificarlos si se requiere la implementación local. "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# translation of Feedback.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:42+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Comentarios"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"Si encuentra algún error de ortografía en este manual o si se le ocurre una manera de mejorar este manual ¡nos encantaría escuchar sus ideas! Llene un reporte en <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> con referencia al Producto: JBoss Enterprise Application Platform, Versión: "
+"<replaceable>&lt;version&gt;</replaceable>, Componente: <emphasis>Doc</"
+"emphasis>. Si tiene alguna sugerencia para mejorar la documentación trate de ser lo más especifico posible. Si encuentra un error, incluya el número de la sección y algo del contexto para que lo podamos identificar fácilmente. "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,133 @@
+# translation of Preface.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-20 11:30+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Prefacio"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "Contenido de este manual "
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+"El manual de administración contiene información sobre cómo administrar JBoss "
+"Transactions API 4.2.3."
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Audiencia"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Este manual es relevante para aquellos ingenieros responsables de la administración de la instalación de JBoss Transactions API 4.2.3. "
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Prerequisitos"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Con el fin de administrar JBoss Transactions primero es necesario comprender que este depende de ArjunaCore para muchas de las funcionalidades relacionadas con las transacciones. Por lo tanto es importante leer el manual de administración de ArjunaCore antes de intentar el administrar JBoss Transactions."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organización"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Este manual contiene los siguientes capítulos: "
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr ""
+"Capítulo 1, Administración de JBoss Transactions: describe cómo administrar "
+"JBoss Transactions, principalmente seleccionando la variante de la implementación JTA: "
+"puramente local o remota (permitiendo transacciones distribuidas)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Documentación adicional"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+"Además de este manual, los siguientes manuales se encuentran disponibles en el grupo de documentación de JBoss "
+"Transactions API 4.2.3: "
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "Notas de lanzamiento de JBoss Transactions API 4.2.3: Proporciona información de última hora con relación a JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "Manual de instalación de JBoss Transactions API 4.2.3: Este manual proporciona instrucciones para instalar JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "Manual del programador de JBoss Transactions API 4.2.3: Proporciona información para escribir aplicaciones."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,23 @@
+# translation of Revision_History.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:43+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:45+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.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Historique de révision"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12: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: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "Groupe de documentation FF0000 Headgear"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:53+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "Guide d'administration de transactions JBoss API 4.2.3"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "Cet ouvrage est l'édition de JBoss Enterprise Application Platform du Guide des administrateurs de transactions JBoss"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,994 @@
+# translation of Chapter.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-07-08 09:38+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 "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"A part veiller à ce que le système soit exécuté normalement, on n'a pas besoin d'une administration continue pour le logiciel JBoss Transactions. "
+"On doit, cependant, noter les points suivants:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr "L'implémentation actuelle du système JBoss TA n'offre aucune protection des données et pas de sécurité. Les objets stockées dans la base de données d'objets JBoss Transactions, sont (typiquement) la propriété de l'utilisateur qui a exécuté l'application qui les a créés. Les installations Object Manager et Object Store ne tentent pas d'appliquer la protection, même si limitée, offerte par Unix/Windows. Il n'y a pas de vérification des ID du groupe ou des utilisateurs au sujet de l'accès aux objets, que ce soit pour lecture ou pour écriture."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr "Les objets persistants créés dans la base de données Objet Store demeurent à cet endroit à moins que la méthode de destruction du StateManager soit invoquée sur l'objet ou bien que quelque programme d'application ne les efface explicitement. Cela signifie que l'Object Store accumule des informations superflues (issues principalement des phases de test ou de développement d'applications). A présent, nous ne possédons pas d'installation pour la récupération de ces informations superflues. De plus, nous n'avons pas résolu le problème des références ambigues. C'est à dire qu'un objet persistant, A, pourrait avoir hébergé un Uid pour un autre objet persistant, B, sous une forme de représentation passive sur un disque. Rien ne peut empêcher une application d'effacer B, même si A contient toujours une référence qui s'y rapporte. Quand A est activé par la suite, et tente d'accéder à B, une erreur d'exécution surgit."
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr "Il n'existe actuellement pas de prise en charge pour le contrôle de version d'objets ou de la reconfiguration des bases de données dans le cas de changements de structure de classe. Il s'agit d'un domaine de recherche complexe que nous n'avons pas encore traité. A présent, si vous changez la définition d'une classe d'objets persistants, vous serez complètement responsable de veiller à ce que les instances existantes des objets de l'Object Store soient convertis à la nouvelle représentation. Le logiciel des transactions JBoss ne peut ni détecter, ni corriger les références vers des anciens états d'objet par des nouvelles versions d'opérations et vice versa."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "La gestion des bases de données Object Store est d'une importance critique pour le service de transaction."
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "Gestion d'ObjectStore"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr "Dans l'installation du service de transactions, la base de données objet est mise à jour régulièrement au fur et à mesure des transactions, ou quand des objets transactionnels pour Java sont utilisés. Dans un environnement qui ne connaît pas de mises en échec, les seuls états d'objet qui doivent résider dans la base de donnée-objets, sont ceux qui représentent des objets créés dans Objets Transactionnels pour Java API. Cependant, en cas d'échecs, les journaux des transactions doivent demeurer dans la mémoire objet jusqu'à ce que les moyens de recouvrement en cas de crash résolvent les transactions qu'ils représentent. Ainsi, il est très important que les contenus des bases de données-objet ne soient pas supprimées facilement, car il serait impossible de résoudre les opérations précaires. De plus, si plusieurs utilisateurs partagent la même base de donnée-objet, il faut qu'ils le réalisent et qu'ils n'effacent pas les contenus Objet Store,!
  assumant qu'il s'agisse d'une ressource exclusive."
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "Information sur le temps d'exécution JBoss Transactions"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr "Chaque module compris dans JBoss Transactions comporte une classe intitulée Info. Ces classes procurent toutes une méthode simple toString qui retourne un document XML, représentant les informations de configuration pour ce module. Donc, par exemple:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "Administration du recouvrement en cas d'échec"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr "Le sous-système de recouvrement des transactions JBoss assurera que les résultats d'une transaction soient appliqués uniformément à toutes les ressources affectées par cette transaction, même si aucun des processus d'application ou la machine hôte ne se plantent ou perdent la connexion réseau. Dans un cas de plantage de machine (système) ou d'échec de réseau, le recouvrement n'aura pas lieu si le système ou le réseau ne sont pas restaurés, mais l'application d'origine n'a pas besoin d'être relancée - la responsabilité du recouvrement est déléguée au Gestionnaire de recouvrement (voir ci-dessous). Le recouvrement suite à un échec, repose sur le fait que l'information, à propos de la transaction et les ressources qui y sont attachées, survive l'échec et soit accessible par la suite: cette information est contenue dans ActionStore, qui fait partie d'ObjectStore."
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "Si l'ObjectStore est détruit ou modifié, les chances de recouvrement sont compromises."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr "Jusqu'à ce que les procédures de recouvrement soient terminées, les ressources affectées par la transaction en progrès au moment de la mise en échec, peuvent être inaccessibles. Pour les ressources de banques de données, cela peut être rapporté sous forme de tables ou de rangées contenues par \"in-doubt transactions\" (transactions précaires). Pour les TransactionalObjects des ressources Java, toute tentative d'activer l'Objet Transactionnel (tout comme toute tentative d'obtenir un verrou) échouera."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Le gestionnaire de recouvrement"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"Le sous-système de recouvrement, en cas d'échec des transactions JBoss, repose sur le fait que le processus du gestionnaire de recouvrement autonome doit être en cours d'exécution pour chaque ObjectStore (normalement un processus par noeud de réseau exécutant des applications JBoss Transactions). Le fichier du gestionnaire de recouvrement (RecoveryManager) est localisé dans le fichier jar arjunacore situé dans le paquetage <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. Pour démarrer le gestionnaire de recouvrement, actionner la commande suivante:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "Si la balise <literal>-test</literal> est utilisée en même temps que le gestionnaire de recouvrement, on verra apparaître un message \"Ready\" (prêt) au moment du démarrage, par ex., "
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Configurer le gestionnaire de recouvrement"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"Le gestionnaire de recouvrement lit les propriétés définies dans le fichier <filename>arjuna."
+"properties</filename> et lit également le fichier de propriété <filename>RecoveryManager.properties</filename>, à partir du même répertoire que celui où il a trouvé dans le fichier des propriétés arjuna. Une saisie de propriété dans le fichier de propriétés du gestionnaire de recouvrement remplacera toute saisie pour cette même propriété dans le fichier de base de propriétés de TransactionService. La plupart des saisies sont spécifiques au gestionnaire de recouvrement."
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr "Une version par défaut de <filename>RecoveryManager.properties</filename> est disponible dans la distribution - qui peut être utilisée sans modifications, excepté peut-être les champs de suivi de débogage (voir ci-dessous, Sortie). Le reste de cette section traite des problèmes de configuration des propriétés à des valeurs différentes (en ordre d'apparence dans la version par défaut du fichier)."
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Sortie"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr "Il est possible que les installations s'attendent à obtenir une certaine forme de sortie du gestionnaire de gestion, en vue de proposer une trace d'enregistrement du genre d'activité de recouvrement qui a eu lieu. Le gestionnaire de recouvrement utilise le mécanisme de traçage de journalisation CLF (Arjuna Common Logging Framework) qui procure un haut niveau d'interface cachant les différences qui existent entre les systèmes de journalisation API comme Jakarta log4j ou JDK 1.4. CLF dirige tout enregistrement par l'infrastructure Apache Commons Logging et la configuration est sensée avoir lieu à travers cette infrastructure."
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr "Pour les applications CLF, effectuez les appels de journalisation sur les objets d'enregistrement chronologique. Les objets d'enregistrement peuvent opérer à différents niveaux et décider s'ils sont intéressés par tel ou tel message. Chaque message de journalisation est associé à un certain niveau de journalisation, qui exprime l'importance et l'urgence d'un message de journalisation. Les configurations possibles sont DEBUG, INFO, WARN, ERROR et FATAL. Des niveaux bien définis sont ordonnés en fonction de leurs valeurs entières relatives comme suit: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr "Le CLF offre une extension pour filtrer les messages de journalisation suivant une granularité plus fine que celle qu'une application puisse définir. Ainsi, lorsqu'un message log est présenté par l'enregistreur chronologique au niveau DEBUG, on peut ajouter des conditions supplémentaires pour déterminer si le message de journalisation est activé ou non."
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "Ces conditions s'appliquent si et seulement si le niveau DEBUG est activé et si la demande de journalisation de l'application précise la granularité de débogage."
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "Une fois activée, la fonction de débogage est filtrée conditionnellement sur trois variables:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "Niveau de débogage: c'est quand la demande de journalisation associée à un niveau de débogage est générée par ex. de méthodes de base ou constructeurs."
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "Niveau de visibilité: la visibilité du constructeur, de la méthode, etc. qui génèrent le débogage."
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Facility code: par exemple, le paquetage ou le sous-module dans lequel le débogage est généré, par ex., la base de donnée objet."
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr "D'après toutes ces variables, le CLF définit trois interfaces. Un produit particulier peut implémenter ses propres classes suivant sa granularité plus fine. JBoss Transactions utilise le niveau de débogage par défaut et le niveau de visibilité par défaut offert par CLF, mais détermine son propre code de fonction. JBoss Transactions utilise le niveau par défaut assigné à ses objets d'enregistreurs chronologiques (DEBUG). Cependant, il utilise des fonctionalités de débogage plus raffinées pour activer ou désactiver les messages de débogage. Des valeurs de débogage plus raffinées, utilisées par les transactions JBoss, sont définies ci-dessous:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Niveau de débogage - JBoss Transactions utilise les valeurs par défaut déterminées dans la classe <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING:  No diagnostics. Un objet de journalisation assigné à cette valeur, ignore toutes les demandes de débogage."
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Full diagnostics. Un objet de journalisation assigné à cette valeur autorise toutes les demandes de débogage si le 'facility code' et le niveau de visibilité correspondent à ceux qui sont autorisés par l'enregistreur chronologique."
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Les valeurs de débogage supplémentaires sont:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnostiques de la part des constructeurs."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnostiques au niveau des finalizers."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnostiques de la part des constructeurs et des finalizers."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS: Diagnostiques par les fonctions."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnostiques par les opérateurs, comme les equals."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnostiques par les fonctions et les opérations."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnostiques par les opérations non-triviales."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnostiques par les fonctions triviales."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnostiques par les opérations triviales, et les opérateurs."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnostiques par les opérations triviales."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Niveau de visibilité– JBoss Transactions utilise les valeurs par défaut définies dans la classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  Pas de diagnostique"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  seulement par méthodes privées."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  seulement par méthodes protégées."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   seulement par méthodes publiques."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+msgstr "VIS_JBoss_Transactions_Administrators_Guide   seulement par méthodes de paquetage."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Diagnostique complet"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Facility Code – JBoss Transactions utilise les valeurs suivantes définies dans la classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (module de base d'action atomique)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (classes de gestion des états (tampons))."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (enregistrements des abstracts)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (implementations de bases de données-objet)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (gestion des états et StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (classes d'implémentation de la mémoire partagée)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (classes générales)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr "FAC_CRASH_RECOVERY = 0x00000800 (trace détaillée du module de recouvrement en cas de plantage et des classes)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (classes de threading)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (prise en charge JDBC 1.0 et 2.0)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (sortie normale pour gestionnaire de recouvrement en cas de plantage)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "Pour garantir les sorties qui conviennent, il faut configurer certaines propriétés de débogage plus raffinées, particulièrement dans le fichier <filename>CommonLogging.xml</filename>, pour activer les messages de journalisation émis par le module de JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr "Les messages qui décrivent le démarrage et le comportement périodique du RecoveryManager (gestionnaire de recouvrement) sont des sorties au niveau INFO. Si on souhaite d'autre traçage de débogage, le niveau de débogage le plus raffiné devra être déterminé en fonction. Par exemple, la configuration suivante,dans CommonLogging.xml, active tous les messages de débogage liés au protocole de recouvrement en cas de plantage et issus par le module JBoss Transactions."
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "Deux objets de journalisation sont fournis, un objet gère les messages l18N et le second ne les gère pas."
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "Configurer les messages de recouvrement normaux au niveau INFO permet au RecoveryManager de produire un niveau modéré de rapport de journalisation. Si il ne se passe rien, il devra rapporter chaque saisie dans chaque module pour chaque tentative périodique. Pour désactiver les messages INFO produits par le Gestionnaire de recouvrement, le niveau de journalisation pourrait être configuré au plus haut niveau: ERREUR. Configurer le niveau à ERREUR implique que le RecoveryManager ne produira que des messages d'erreur, des messages d'avertissement ou d'erreurs fatales."
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Recouvrement périodique"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"Le gestionnaire de recouvrement balaye les ObjectStores et autres locations d'information, dans la recherche de ressources et de transactions qui requièrent ou pourraient requérir un recouvrement. Le processus de balayage et de recouvrement sont opérés par les modules de recouvrement, (instances de classes qui implémentent l'interface com.arjuna.ats."
+"arjuna.recovery.RecoveryModule), comportant chacun une responsabilité pour une catégorie particulière de transaction ou de ressource. L'ensemble des modules de recouvrement est chargé dynamiquement, en utilisant des propriétés que l'on peut trouver dans le fichier de propriétés du RecoveryManager."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"L'interface a deux méthodes: <literal>periodicWorkFirstPass</literal> et "
+"<literal>periodicWorkSecondPass</literal>. A un certain interval (défini par la propriété <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), le RecoveryManager fera appel à la première méthode FirstPass sur chaque propriété, attendra un petit moment (défini par la propriété <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), puis fera appel la seconde méthode SecondPass pour chaque module. Normalement, avec la première méthode, FirstPass, le module balaye ( par ex. une partie pertinente de l'ObjectStore) pour trouver des transactions ou des ressources douteuses (par ex. à mi-chemin vers le processus de validation). Avec la seconde, SecondPass, si les doutes subsistent, il est possible que le processus d'application de départ soit planté et que cet élément soit candidat au recouvrement."
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"Une tentative du RecoveryManager de recouvrement de transaction en cours de dans le(s) processus d'origine, est susceptible d'endommager la cohérence. Par conséquent, les modules de recouvrement utilisent un mécanisme (implémenté dans le paquetage <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname>) pour vérifier sur le processus d'origine est toujours actif, et si la transaction progresse toujours. Le RecoveryManager ne continue le processus de recouvrement que si le processus d'origine est terminé, ou, s'il est toujours actif, il patientera que la transaction soit terminée. (Si une processus de serveur ou une machine échouent, mais que le processus d'initiation de la transaction subsiste, la transaction s'achèvera, en générant normalement un avertissement. Le recouvrement d'un telle transaction est du ressort du RecoveryManager)."
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"Il est très important de configurer les intervals périodiques correctement. Le temps d'itération total correspondra à la somme des <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> et à la durée qu'il faut pour balayer les zônes de stockage et tenter le recouvrement de toutes transactions précaires, pour tous les modules de recouvrement. Le temps de tentative de recouvrement peut inclure les délais de connexion au moment des tentatives de communication avec les processus ou des machines qui sont plantées ou qui sont inaccessibles (ce qui explique pourquoi il existe des mécanismes dans le système de recouvrement pour éviter d'essayer de recouvrir la même transaction indéfiniement). Le temps d'itération total va affecter la durée pendant laquelle une ressource pourra demeurer accessible suite à un échec - <literal>periodicRecoveryPeriod</literal> devra être configuré en fonction ( la valeur par défaut est de 120 secondes). Le <literal>recoveryBackoffPeriod</literal> peut, comparativement, être court ( la valeur par défaut est de 10 secondes) - son but est surtout de réduire le nomb!
 re de transactions candidates au recouvrement et qui donc requièrent un appel au processus d'origine pour vérifier si elles sont toujours en cours."
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "Dans les versions précédentes de JBoss Transactions, il n'y avait pas de mécanisme de contact, et la période de backoff devait être assez longue pour éviter d'intercepter des transactions en cours. A partir de la version 3.0, ce risque a disparu."
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"On fournit deux modules de recouvrement ( les implémentations d'interfaces <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname>) avec JBoss Transactions, prenant en charge plusieurs aspects de recouvrement de transactions, y compris le recouvrement JDBC. Il est possible pour les utilisateurs avancés de créer leurs propres modules de recouvrement et de les enregistrer dans le RecoveryManager. Les modules de recouvrement sont enregistrés dans le RecoveryManager en utilisant les propriétés qui commencent par “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. Elles seront invoquées à chaque "
+"Pass du recouvrement périodique en suivant l'ordre des noms de propriété - il sera donc possible de prédire l'ordonnancement ( mais noter que l'échec d'un processus d'application peut avoir lieu pendant qu'une Pass de recouvrement périodique est en cours). Les paramètres d'extension de recouvrement par défaut sont les suivants:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Suppression des saisies obsolètes"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"L'opération de recouvrement du sous-système entraînera la saisie de certaines informations dans l'ObjectStore qui ne seront pas normalement supprimées. Le RecoveryManager contient une fonction de balayage de ces informations et pour supprimer celles qui sont trop anciennes. Les opérations de balayage et de suppression sont conduites par les implémentations de l'interface <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname>. Les implémentations de cette interface sont chargées en donnant un nom de classe à la valeur de la propriété dont le nom commence par <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. Le RecoveryManager appelle la méthode <command>scan()</command> pour chaque implémentation Expiry Scanner (balayage expiré) chargée, dans un intervalle déterminé par la propriété <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. Cette valeur est donnée en heures - la valeur par défaut est 12. Une valeur de zéro pour <classname>expiryScanInterval</classname> supprimera tout Expiry Scanning (balayage expiré). Si la valeur fournie est positive, le premier balayage aura lieu au démarrage du RecoveryManager, si la valeur est négative, le premier balayage sera retardé jusqu'à l'apparition du premier intervalle (en utilisant la valeur absolue)."
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Sortes d'éléments balayés pour expiration:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager items : l'un d'entre eux est créée par le processus d'application qui utilise JBoss Transactions - ils contiennent l'information qui autorise le RecoveryManager de déterminer si le processus qui initie la transaction est toujours actif, et quel est le statut de transaction. Leur temps d'expiration est déterminé par la propriété <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (en heures - la valeur par défaut est 12, zéro signifiant n\"expire jamais). Le temps d'expiration ne devrait jamais être plus élevé que la durée de vie d'un seul processus utilisant-JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Leurs propriétés Expiry Scanner sont:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Erreurs et exceptions"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "Dans cette section, nous devrons couvrir les types d'erreur et les exceptions qui pourraient être envoyées ou reportées pendant une application transactionelle ou bien tenter de donner des indications sur leurs causes."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr "NO_MEMORY: l'application est à cours de mémoire (<classname>OutOfMemoryError</classname>) et JBoss Transactions a tenté de faire le nettoyage (en exécutant le nettoyeur) avant de renvoyer l'exception. C'est probablement un problème transitoire et retenter l'invocation devrait fonctionner."
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr "com.arjuna.ats.arjuna.exceptions.FatalError: apparition d'une erreur qui entraîne la fermeture du système de transactions. Avant l'apparition de cette erreur, le service de transaction devra s'assurer que toutes les transactions en cours sont redressées. Si l'application est coincée, elle doit mettre de l'ordre et sortir. Si on tente de continuer les opérations, on peut endommager la cohérence de l'application."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr "com.arjuna.ats.arjuna.exceptions.LicenceError: tentative d'utiliser le service de transaction d'une manière non cohérente par rapport à la licence en cours. Le service de transaction ne permettra pas davantage de progrès pour les nouvelles ou pour les transactions existantes."
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr "com.arjuna.ats.arjuna.exceptions.ObjectStoreError: erreur au moment où le service transaction a tenté d'utiliser la base de données objet. Impossible de progresser davantage."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "Des avertissements de bases de données objet à propos de problèmes d'accès aux états, peuvent survenir au cours d'une exécution normale de recouvrement de plantage. Ceci est le résultat de multiples tentatives concurrentes de tenter un recouvrement sur la même transaction. On peut ignorer ces avertissements."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Sélectionner l'implémentation JTA"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "Deux variantes de l'implémentation JTA sont maintenant proposées et accessibles à travers la même interface. Elles sont les suivantes:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr "Un JTA purement local, qui permet aux transactions JTA non distribuées d'être exécutées. C'est la seule version disponible avec le produit JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "Un JTA distant basé-CORBA, qui permet d'exécuter les transactions JTA distribuées. Cette version est seulement disponible avec le produit ArjunaJTS et requiert un CORBA ORB supporté."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "ces deux implémentations sont totalement compatibles avec le pilote transactionnel JDBC qui est fourni avec JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "En vue de sélectionner une implémentation JTA locale, il est nécessaire de procéder aux étapes suivantes:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"veillez à ce que la propriété <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> soit configurée ainsi <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"Veillez à ce que la propriété <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> soit configurée ainsi <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "ces paramètres sont les valeurs par défaut des propriétés et ne pourront pas être spécifiées si l'implémentation locale est requise."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,38 @@
+# translation of Feedback.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:58+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
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Commentaires"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr "Si vous décelez une erreur dans ce guide, ou si vous avez des suggestions pour améliorer ce manuel, faites-nous en part! Vous pouvez soumettre un rapport dans <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> dans la section Produit: JBoss Enterprise Application Platform, Version: <replaceable>&lt;version&gt;</replaceable>, Composant: <emphasis>Doc</emphasis>. Si vous avez une suggestion pour améliorer la documentation, essayez d'être aussi précis que possible. Si vous avez décelé une erreur, n'oubliez pas de préciser le numéro de la section et de transcrire un extrait de texte avoisinant, de façon à ce que nous puissions la retrouver facilement."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,127 @@
+# translation of Preface.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-07-07 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
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Préface"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "Contenu de ce guide"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr "Le guide d'administration contient des informations sur la façon d'administrer les transactions JBoss API 4.2.3."
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Audience"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Ce guide est surtout utile aux ingénieurs responsables de l'administration des installations JBoss Transactions API 4.2.3."
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Prérequis"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Pour pouvoir administrer les transactions JBoss, il faut tout d'abord comprendre qu'il dépend de ArjunaCore pour de nombreuses fonctionnalités de transactions. Il est donc important de lire le guide d'administration ArjunaCore avant de tenter d'administrer les transactions JBoss."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organisation"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Ce guide comprend les chapitres suivants:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "Chapter 1, Administration des transactions JBoss: décrit comment administrer les transactions JBoss, principalement en sélectionnant une variante de l'implémentation JTA purement locale ou distante (permettant les transactions distribuées)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Documentation supplémentaire"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr "En plus de ce guide, les guides suivants sont disponibles dans la gamme de documentation sur les transactions JBoss API 4.2.3:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "Les notes de mise à jour des transactions JBoss API 4.2.3: offrent les dernières informations à propos des transactions JBoss API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "Guide d'installation des transactions JBoss API 4.2.3: Ce guide procure des instuctions pour installer JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "Guide du programmeur des transactions JBoss API 4.2.3: procure des informations sur les applications écriture."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:59+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+# translation of Appendix.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-04 01:07+0000\n"
+"PO-Revision-Date: 2008-09-04 11:09+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "リビジョン履歴"
+
+#. Tag: para
+#: Appendix.xml:10
+#, no-c-format
+msgid "<para>TBD</para>"
+msgstr "<para>TBD</para>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,25 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-04 01:07+0000\n"
+"PO-Revision-Date: 2008-09-04 11:10+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:5
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat ドキュメントチーム"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,47 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: 2008-09-12 14:32+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Administrators Guide"
+msgstr "JBoss Transactions Administrators Guide"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr "JBoss Enterprise Application Platform 4.3 対応"
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+"本ガイドは JBoss Transactions Administrators Guide の "
+"JBoss Enterprise Application Platform 版です。"
+
+#. Tag: holder
+#: Book_Info.xml:24
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1227 @@
+# translation of Chapter.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-09-04 17:12+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"ランタイムシステムが正常に実行していることを確認する他、 JBoss Transactions "
+"ソフトウェアには継続的に行う必要のある管理が若干あります。 以下にいくつか注意"
+"事項を記します。"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+"JBoss TA の現在の実装はデータの保護やセキュリティは提供しません。 JBoss "
+"Transactions オブジェクトストアに格納されるオブジェクトは (一般的に) それを作"
+"成したアプリケーションの実行を行ったユーザーに所有されます。 Object Store お"
+"よび Object Manager の機能は、 Unix/Windows が提供する限定形式の保護であって"
+"もまったく実施しません。 読み取りまたは書き込みいずれかのためオブジェクトに行"
+"われるアクセスに関してユーザーまたはグループの ID のチェックはありません。"
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+"Object Store で作成された永続オブジェクトは、StateManager.destroy メソッドが "
+"オブジェクト上で呼び出されない限り、あるいは、あるアプリケーションプログラムが明示的に "
+"それらを削除しない限りは、決して消失することはありません。このことは、Object Store が "
+"次第にゴミを集積していることを意味します(特にアプリケーション開発中やテスト期間中)。 "
+"今のところ、自動のゴミ回収機能は存在しません。更に、つきまとう参照問題に対処していません。 "
+"永続オブジェクト A が別の永続オブジェクト B の為に Uid を ディスク上にパッシブ表現で "
+"保存したような場合、A がまだその参照を維持しているにもかかわらず、あるアプリケーションが "
+"B を削除してしまうことを阻止するものがないと言うことです。A が次回にアクティベートされて、 "
+"B にアクセスを試みた時に、ランタイムエラーが発生します。"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+"クラスの構成が変更になった場合、 データベースの再構成やオブジェクトのバージョ"
+"ン管理に関するサポートは現在ありません。 これは対処していない複雑な研究分野に"
+"なります。 現時点では、 永続オブジェクトのクラスの定義を変更する場合は、 "
+"Object Store 内のオブジェクトの既存インスタンスが新しい表現に変換されるかは確"
+"約できませんので必ず確認を行ってください。 JBoss Transactions ソフトウェアは"
+"新しいオペレーションバージョンで旧オブジェクトの状態への参照を検出することも"
+"修正することもできません、 またこの逆もできません。"
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr ""
+"オブジェクトストア管理はトランザクションサービスにとって非常に重要となりま"
+"す。"
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "ObjectStore 管理"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"トランザクションサービスのインストール内で、 オブジェクトストアはトランザク"
+"ションが作成されるとき、 または Java 用の Transactional Objects が使用される"
+"場合必ず更新されます。 障害なしの環境では、 オブジェクトストア内に常駐すべき"
+"オブジェクトの状態のみが Java API の Transactional Objects で作成されるオブ"
+"ジェクトを表現するものとなります。 ただし、 障害が発生すると、クラッシュリカ"
+"バリの機能が表しているトランザクションを解決するまでトランザクションログはオ"
+"ブジェクトストア内に残る可能性があります。 このため、 オブジェクトストアの内"
+"容は十分な注意を払わずに削除されると疑わしいトランザクション内での解決が不可"
+"能となるため、 非常に重要です。 また、 複数のユーザーが同じオブジェクトストア"
+"を共有する場合、 ユーザーはこれをよく認識してリソースはそれぞれ専有のものとして"
+"オブジェクトストアの内容を削除しないようにすることが重要です。"
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "JBoss Transactions ランタイム情報"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+"JBoss Transactions を構成する各モジュールは Info と呼ばれるクラスを持っていま"
+"す。 これらのクラスはすべて単一の toString メソッドを提供し、 そのモジュール"
+"用の設定情報を表す XML ドキュメントを返します。 たとえば、"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "障害リカバリ管理"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"JBoss Transactions の障害リカバリサブシステムは、 アプリケーションプロセスや"
+"それをホストしているマシンのいずれかがクラッシュしたりネットワーク接続を失っ"
+"た場合にでも、 トランザクションの結果がトランザクションにより影響されるすべて"
+"のリソースに対して常に必ず適用されるようにします。 マシン (システム) のクラッ"
+"シュやネットワーク障害が発生した場合、 そのシステムまたはネットワークが回復さ"
+"れるまでリカバリは行われませんが、 オリジナルのアプリケーションは起動される必"
+"要はありません。 リカバリ処理は Recovery Manager のプロセスに委任されます (以"
+"下を参照)。 傷害後のリカバリにはトランザクションとリソースに関する情報が障害"
+"を逃れて存続しその後アクセス可能であることが要されます。 この情報は "
+"ActionStore に維持され、 これは ObjectStore の一部になります。"
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+"ObjectStore が破棄または変更されると、 リカバリができなくなる可能性がありま"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"リカバリの手順が完了するまで、 障害発生時に実行中だったトランザクションによっ"
+"て影響を受けるリソースはアクセスできない可能性があります。 データベースのリ"
+"ソースについては、 “in-doubt transactions” で維持される表または列として報告さ"
+"れる可能性があります。 Java の TransactionalObjects リソースについては、 "
+"Transactional Object の起動の試行が失敗します (ロック取得試行時)。"
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"JBoss Transactions の障害リカバリサブシステムは、 スタンドアローンの "
+"Recovery Manager プロセスが各 ObjectStore (一般的に JBoss Transactions アプリ"
+"ケーションを実行しているネットワーク上の各ノードに 1 つ) に対して実行している"
+"必要があります。 RecoveryManager ファイルは <classname>com.arjuna.ats.arjuna."
+"recovery.RecoveryManager</classname> パッケージ内の arjunacore jar ファイルに"
+"あります。 Recovery Manager を起動するには次のコマンドを実行します。"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+"Recovery Manager で <literal>-test</literal> フラグが使用される場合、 初期化"
+"すると “Ready” メッセージが表示されます。"
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Recovery Manager を設定する"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"RecoveryManager は <filename>arjuna.properties</filename> ファイルに定義され"
+"るプロパティを読み込み、 また arjuna プロパティファイルを発見した同じディレク"
+"トリから <filename>RecoveryManager.properties</filename> プロパティファイルを"
+"読み込みます。 RecoveryManager プロパティファイル内のプロパティのエントリはメ"
+"インの TransactionService プロパティファイル内の同じプロパティのエントリを上"
+"書きします。 ほとんどのエントリは Recovery Manager 固有となります。"
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"<filename>RecoveryManager.properties</filename> のデフォルトバージョンはディ"
+"ストリビューションに同梱されます。 おそらくデバッグ追跡フィールド (以下参"
+"照、 「出力」) 以外は変更することなく使用できます。 これ以降、 本セクションで"
+"はプロパティを他の値に設定する上での問題について説明していきます (ファイルの"
+"デフォルトバージョンで表示されている順序)。"
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "出力"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"どのようなリカバリアクティビティが行われたのかの記録を提供するために、 インス"
+"トールが RecoveryManager からの出力をなんらかの形式で必要とする可能性がありま"
+"す。 RecoveryManager は Arjuna Common Logging Framework (CLF) によって提供さ"
+"れるログ追跡メカニズムを使用します。 これは Jakarta log4j や JDK 1.4 ロギン"
+"グ API など既存のロギング API 間に存在する相違を隠す高度なレベルのインター"
+"フェースを提供します。 CLF は Apache Commons Logging フレームワーク経由ですべ"
+"てのロギングをインダイレクトするので、 設定はそのフレームワークを通して発生す"
+"るとみなされます。"
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"CLF ではアプリケーションはロッガーオブジェクトでロギングのコールを作成しま"
+"す。 ロッガーはロギングの Levels を使って特定のログメッセージに興味があるかを"
+"決定することができます。 各ログメッセージはログの Level を関連付け、 これによ"
+"りログメッセージの重要性や緊急性を与えます。 可能な Log Level のセットは "
+"DEBUG、 INFO、 WARN、 ERROR、 FATAL になります。 定義される Level は次のよう"
+"にその整数値に従って順序付けられます: DEBUG &lt; INFO &lt; WARN &lt; ERROR "
+"&lt; FATAL。"
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"CLF はアプリケーションが定義する可能性があるより詳細な粒度に従ってロギング"
+"メッセージのフィルタを行うため拡張子を提供します。 これは、 ログメッセージが "
+"DEBUG レベルでロッガーに提供される場合、 ログメッセージが有効かどうかを判別す"
+"るため指定できる追加の条件になります。"
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+"これらの条件は、 DEBUG レベルが有効でアプリケーションによって実行されるログ要"
+"求がデバッグの粒度を指定している場合にのみ適用されます。"
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "有効になると、 Debugging は次の 3 つの変数の条件付きでフィルタされます。"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+"Debugging レベル: DEBUG Level 月のログ要求が生成される場所です。 例えば、 コ"
+"ンストラクタや基本的なメソッド。"
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+"Visibility レベル: デバッグを生成するコンストラクタ、 メソッドなどの可視性で"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+"Facility コード: たとえば、 デバッグが生成される場所内のパッケージやサブモ"
+"ジュールです。 例、 オブジェクトストアなど。"
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"これらの変数にしたがって、 CLF は 3 つのインターフェースを定義します。 特定の"
+"プロダクトがそれ自体の詳細な粒度にしたがいそれ自体のクラスを実装することがで"
+"きます。 JBoss Transactions はデフォルトの Debugging レベルおよび CLF によっ"
+"て提供されるデフォルトの Visibility レベルを使用しますが、 それ自体の "
+"Facility コードは定義します。 JBoss Transactions はそのロッガーオブジェクト "
+"(DEBUG) に割り当てられるデフォルトのレベルを使用します。 ただし、 デバッグ"
+"メッセージの無効化または有効化にはより詳細なデバッグ機能を使用します。 JBoss "
+"Transactions で使用される詳細なデバッグの値は以下のように定義されます。"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+"Debugging レベル – JBoss Transactions はクラス <classname>com.arjuna.common."
+"util.logging.DebugLevel</classname> で定義されるデフォルトの値を使用します。"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+"NO_DEBUGGING: 診断なしです。 この値を付けて割り当てられるロッガーオブジェクト"
+"はすべてのデバッグ要求を破棄します。"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+"FULL_DEBUGGING: 完全診断です。 この値を付けて割り当てられるロッガーオブジェク"
+"トは、 facility コードと visibility レベルがそのロッガーで許可されるそれらと"
+"一致する場合にすべてのデバッグ要求を許可します。"
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "追加のデバッグ値は次の通りです。"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: コンストラクタからの診断です。"
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  ファイナライザからの診断です。"
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: コンストラクタとファイナライザからの診断です。"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS: 関数からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS: イコールなどの演算子からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: 関数と演算からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: non-trivial の全演算からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS: trivial 関数からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: trivial 演算と演算子からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  すべての trivial 演算からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Visibility レベル – JBoss Transactions はクラス <classname>com.arjuna.common."
+"util.logging.VisibilityLevel</classname> で定義されるデフォルトの値を使用しま"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE: 診断なしです。"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE : プライベートメソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  保護メソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC  パブリックメソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr "VIS_PACKAGE  パッケージメソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  総合診断です。"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Facility コード – JBoss Transactions はクラス <classname>com.arjuna.common."
+"util.logging.VisibilityLevel</classname> で定義される次のような値を使用しま"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (アトミックアクションコアモジュール)。"
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (状態管理 (バッファ) クラス)。"
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (抽出記録)。"
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (オブジェクトストア実装)。"
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (状態管理と StateManager)。"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (共有メモリ実装クラス)。"
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (汎用クラス)。"
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (クラッシュリカバリモジュールとクラスの詳細な"
+"とレース)。"
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (スレッディングクラス)。"
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 および 2.0 サポート)。"
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (クラッシュリカバリマネージャの通常出力)。"
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+"適切な出力を確認するため、 <filename>CommonLogging.xml</filename> ファイルで"
+"明示的に詳細なデバッグプロパティをいくつか設定して JBoss Transactions モ"
+"ジュールで発行されるロギングメッセージを有効にする必要があります。"
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+"RecoveryManager によって作成される開始と定期的な動作を説明しているメッセージ"
+"は INFO レベルを使用する出力です。 他のデバッグトレーシングが必要な場合は、 "
+"詳細なデバッグレベルを適切に設定されなければなりません。 たとえば、 次の設定"
+"の CommonLogging.xml で、 Crash Recovery プロトコルに関連し JBoss "
+"Transactions モジュールによって発行されるデバッグメッセージはすべて有効にしま"
+"す。"
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+"2 つのロッガーオブジェクトが提供され、 1 つは I18N メッセージを管理し、 2 番"
+"目は管理しません。"
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+"通常のリカバリメッセージを INFO レベルに設定すると RecoveryManager が適度なレ"
+"ポーティングレベルを生成することができるようになります。 何も行われていなけれ"
+"ば、 エントリをそれぞれの定期的なパスの各モジュールに報告するだけです。 "
+"Recovery Manager によって生成される INFO メッセージを無効にするには、 ロギン"
+"グレベルをより高いレベルの ERROR に設定すると行うことができます。 レベルを "
+"ERROR に設定するということは RecoveryManager が error、 warning、 fatal の"
+"メッセージしか生成しないということになります。"
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "定期的なリカバリ"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"RecoveryManager は ObjectStore および情報のその他の場所をスキャンし、 リカバ"
+"リを要するまたは要する可能性があるトランザクションとリソースを探します。 この"
+"スキャンとリカバリ処理は、 トランザクションまたはリソースの特定カテゴリに対す"
+"る処理責務を有する各リカバリモジュールによって行われます、 (com.arjuna.ats."
+"arjuna.recovery.RecoveryModule インターフェースを実装するクラスのインスタン"
+"ス)。 使用されるリカバリモジュールのセットは動的にロードされ、 "
+"RecoveryManager property ファイルにあるプロパティを使用します。"
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"インターフェースには <literal>periodicWorkFirstPass</literal> と "
+"<literal>periodicWorkSecondPass</literal> の 2 つのメソッドがあります。 ある"
+"間隔で (プロパティ <classname>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</classname> によって定義される)、 RecoveryManager は各"
+"プロパティで 1 番目のパスをコールし、 少しの期間 (プロパティ <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname> によって定義され"
+"る) 待機してから、 各モジュールの 2 番目のパスをコールします。 一般的には、 "
+"1 番目のパスでモジュールは in-doubt (つまり、 コミットメントプロセスの途中) "
+"のリソースまたはトランザクションを検索するためスキャンを行います (例、 "
+"ObjectStore の関連部分)。 2 番目のパスで、 同じアイテムのいずれかがいまだ in-"
+"doubt の場合、 オリジナルのアプリケーションプロセスがクラッシュしていてそのア"
+"イテムがリカバリの候補である可能性があります。"
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"RecoveryManager によるオリジナルのプロセスでいまだ進行中のトランザクションの"
+"リカバリ試行は整合性をブレイクする可能性があります。 これに応じて、 リカバリ"
+"モジュールはオリジナルのプロセスがいまだ生きているのかどうか、 またトランザク"
+"ションがいまだ進行中であるのかどうかをチェックするメカニズムを使用します "
+"(<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> パッケージ内に実装される)。 RecoveryManager はオリジナルのプロセス"
+"がなくなってしまった場合、 あるいはいまだ生きているときはトランザクションが完"
+"了した場合にのみ開始されます。 (サーバーのプロセスまたはマシンがクラッシュし"
+"たがトランザクション開始のプロセスが生き残っている場合、 このトランザクション"
+"は完了して通常は警告を生成します。 このようなトランザクションのリカバリが "
+"RecoveryManager の役割となります。)"
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"間隔の期間を適切に設定することが明らかに重要となります。 合計反復時間は全リカ"
+"バリモジュールの <literal>periodicRecoveryPeriod</literal>、 "
+"<literal>recoveryBackoffPeriod</literal>、 およびスキャンをストアし発見した "
+"in-doubt トランザクションのリカバリを試行するのにかかる時間の合計になります。"
+"リカバリ試行時間にはクラッシュしたあるいはアクセスできないプロセスやマシンと"
+"の通信試行をしている間の接続タイムアウトも含まれることがあります (これが同じ"
+"トランザクションのリカバリ試行を永久に回避するメカニズムがリカバリシステムに"
+"ある理由です)。 合計反復時間は障害が発生してからリソースがアクセス不能な状態"
+"でいる長さに影響します。 応じて <literal>periodicRecoveryPeriod</literal> を"
+"設定しなければなりません (デフォルトは 120 秒)。 "
+"<literal>recoveryBackoffPeriod</literal> は比較的短時間で構いません (デフォル"
+"トは 10 秒)。 目的は主にリカバリの候補となるためいまだ実行中であるかどうかを"
+"確認するのにオリジナルのプロセスのコールを必要とするトランザクション数を減ら"
+"すことです。"
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+"JBoss Transactions の以前のバージョンでは、 コンタクトメカニズムがなかったた"
+"め空中のトランザクションのキャッチを回避するのに backoff 期間をかなり長くしな"
+"ければなりませんでした。 3.0 からはこのようなリスクがなくなります。"
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"JBoss Transactions には 2 つのリカバリモジュール (<classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> インターフェースの実装) が同梱さ"
+"れ、 JDBC リカバリなど各種のリカバリに対応しています。 上級ユーザーの場合、 "
+"自分のリカバリモジュールを作成して Recovery Manager に登録することが可能で"
+"す。 リカバリモジュールは “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>” で始まるプロパティを使って RecoveryManager に"
+"登録します。 これらはプロパティ名のソート順で定期的なリカバリの各パスで呼び出"
+"されます。 したがって、 "
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "失効エントリの削除"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"サブシステムのリカバリの実施により、 通常のプログレスでは削除されない "
+"ObjectStore 内にエントリがいくつか作成されることになります。 RecoveryManager "
+"にはこれらをスキャンして古いアイテムを削除する機能があります。 スキャンと削除"
+"は <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> イン"
+"ターフェースの実装で行われます。 このインターフェースの実装は <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanner</classname> で始まる名前を持つプロパ"
+"ティの値としてクラス名を与えることでロードされます。 RecoveryManager はプロパ"
+"ティ <classname>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"classname> で確定される間隔でロードされる Expiry Scanner の各実装で "
+"<command>scan()</command> メソッドを呼び出します。この値は時間単位で与えま"
+"す。 デフォルトは 12 時間です。 <classname>expiryScanInterval</classname> の"
+"値がゼロは失効のスキャンを抑制します。 与えられる値が整数である場合は、 "
+"RecoveryManager が起動したときに最初のスキャンが行われます。 値が負数の場"
+"合、 最初のスキャンは最初の間隔まで遅延されます (絶対値を使用)。"
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "失効のスキャンが行われるアイテムの種類は次の通りです。"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager アイテム: JBoss Transactions を使用する全アプリケー"
+"ションプロセスによってこれらのひとつが作成されます。 RecoveryManager がトラン"
+"ザクションを開始したプロセスがまだ生きているかどうか、 またそのトランザクショ"
+"ン状態を確定できるようにする情報が含まれています。 これらの失効時間はプロパ"
+"ティ <classname>com.arjuna.ats.arjuna.recovery."
+"transactionStatusManagerExpiryTime</classname> で設定されます (時間単位で、 "
+"デフォルトは 12 時間、 0 は失効しないという意味)。 失効時間はいずれの単一 "
+"JBoss Transactions 使用プロセスの寿命より長くなければなりません。"
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "これらの Expiry Scanner プロパティは次の通りです。"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "エラーと例外"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+"本セクションでは、 トランザクショナルアプリケーションの間に投げられたり報告さ"
+"れる可能性のあるエラーや例外のタイプについて説明し、 その原因により起こりそう"
+"な兆候をあげておきます。"
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY: アプリケーションの空きメモリがなくなり "
+"(<classname>OutOfMemoryError</classname> が投げられる)、 JBoss Transactions "
+"が例外を再度投げるまでになんらかのクリーンアップを試行しています (ガーベッジ"
+"コレクションを実行)。 これはおそらく一時的な問題で呼び出しを再試行すると成功"
+"するはずです。"
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: トランザクションシステムがシャットダウンを "
+"しなければならない状態のエラーが発生しました。このエラーが送出されるまでは "
+"トランザクションサービスは、全ての実行中トランザクションがロールバックされたことを "
+"確認します。エラーに遭遇した場合は、アプリケーションが片付けをして終了することになります。 "
+"それ以降に作業が試行されると、アプリケーションの整合性は害を受けます。"
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: 現在のライセンスに適合しない "
+"方法でトランザクションサービスの使用が試行されました。トランザクションサービスは "
+"既存のあるいは新規のトランザクションに対しこれ以上の進行を許可しません。"
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: トランザクションサービスが "
+"Object Store の使用を試みた時にエラーが発生しました。これ以上の進行は不可能です。"
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+"アクセス問題に関する Object Store 状態警告は通常のクラッシュリカバリの "
+"実行中に発生します。これは同じトランザクションでのリカバリの複数並行試行の "
+"結果です。これは無視することができます。"
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "JTA 実装の選択"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+"JTA 実装の2つの種類が現在提供されており、同じインターフェイスでアクセスが "
+"できます。以下のものがあります:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+"その1つは純粋にローカルの JTA です。これは非配布の JTA トランザクションのみを "
+"実行できるようにします。これは JBoss Transactions 製品で使用可能な唯一の "
+"バージョンです。"
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+"もう1つは、リモートで、CORBA ベースの JTA です。これは、配布されている "
+"JTA トランザクションを実行できるようにします。このバージョンは ArjunaJTS 製品と "
+"一緒にのみ取得可能でサポート付きの CORBA ORB を必要とします。"
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+"これらの両方の実装は、JBoss Transactions で提供されているトランザクショナル "
+"JDBC と完全な互換性があります。"
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+"ローカル  JTA 実装を選択するためには、以下の手順を実行する必要が "
+"あります:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"プロパティ <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> が <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal> にセットしてあることを確認します。"
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"プロパティ <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> が <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal> にセットしてあることを確認します。"
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""
+"これらのセッティングはそれぞれのプロパティ用にデフォルトであり、ローカルの "
+"実装が要求されている場合は、それらの指定は必要ではありません。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,38 @@
+# translation of Feedback.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 12:38+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "フィードバック"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr "本ガイドに誤植があった場合、 また本ガイドの改善案に関するご意見をお寄せ頂く場合、 <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> より Product: JBoss Enterprise Application Platform、 Version: <replaceable>&lt;version&gt;</replaceable>、 Component: <emphasis>Doc</emphasis> にてご報告頂ければ幸いです。 ドキュメントの改善案についてはできるだけ詳細にお願いいたします。 エラーの報告を頂く場合は、 該当するセクション番号および前後の文脈を含めてお知らせ頂けると発見しやすくなります。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,127 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 13:44+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序文"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "本ガイドに含まれるもの"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr "管理ガイドでは JBoss Transactions API 4.2.3 を管理する方法について説明しています。"
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "対象"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "JBoss Transactions API 4.2.3 のインストールを管理するエンジニアの方に最適なガイドです。"
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "必須条件"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "JBoss Transactions を管理するにはまず JBoss Transactions が多くのトランザクション機能で ArjunaCore に依存していることを理解しておくことが必要になります。 このため ArjunaCore 管理ガイドをよく読んでから JBoss Transactions の管理を開始するのが重要となります。"
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "企業組織"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "本ガイドには以下の章から構成されています。"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "第 1 章、 JBoss Transactions の管理 では JBoss Transactions の管理方法について説明しています。 主に純粋なローカルまたはリモートなど JTA 実装の種類の選択についてです (配信トランザクションの許可)。"
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "追加ドキュメント"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr "本ガイドの他、 次のようなガイドが JBoss Transactions API 4.2.3 ドキュメントセットにあります。"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 Release Notes (リリースノート)、 JBoss Transactions API 4.2.3 に関する最新情報を提供します。"
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 Installation Guide (インストールガイド)、 JBoss Transactions API 4.2.3 のインストール方法について説明しています。"
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "JBoss Transactions API 4.2.3 Programmer’s Guide (プログラマーガイド)、 アプリケーションの記述方法についてのガイダンスになります。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: 2008-09-12 14:33+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Appendix.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Appendix.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Appendix.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Author_Group.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Author_Group.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Author_Group.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:5
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Book_Info.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Book_Info.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Administrators Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:15
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:24
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Chapter.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Chapter.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Chapter.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,933 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Feedback.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Feedback.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Feedback.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/JBoss_Transactions_Administrators_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Preface.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Preface.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Preface.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,124 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Revision_History.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Revision_History.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/Revision_History.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-12 03:10+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:41+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Histórico de Revisão"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:42+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "Grupo de Documentação FF0000 Headgear"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:49+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "Guia de Administração API 4.2.3 de Transações JBoss"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "Plataforma de Aplicativo JBoss Enterprise"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "Este livro é uma edição da Plataforma de Aplicativo JBoss Enterprise do Guia de Administradores de Transações JBoss"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1000 @@
+# translation of Chapter.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-19 15:37+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr "Existe uma administração contínua e necessária para o software de transações JBoss, fora a garantia de que o sistema de tempo de execução é efetuado normalmente. No entanto, existem alguns pontos que devem ser mencionados:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr "A implementação presente do sistema JBoss TA não fornece segurança ou proteção de dados. Os objetos armazenados no armazenamento de objeto de Transações JBoss pertencem (tipicamente) ao usuário que roda o aplicativo que os criou. As facilidades do Gerenciador de Objeto e Armazenamento de Objeto não se esforçam em reforçar nem mesmo o formulário limitado de proteção que o Unix/Windows fornece. Não há checagem de IDs de usuário ou grupo no acesso a objetos para tanto a leitura ou gravação."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr "Os objetos persistentes criados no Armazenamento do Objeto nunca desaparecerão, a não ser que o método StateManager.destroy seja invocado no objeto ou algum programa de aplicativo explícito deletá-los. Isto significa que o Armazenamento de Objeto acumula gradativamente lixo (especialmente durante as fases de teste e desenvolvimento do aplicativo). No momento, não possuimos a facilidade de coleta de lixo automático. Adicionado a isto, não endereçamos o problema de referências de ligação. Isto quer dizer que, um objeto persistente A pode armazenar um Uid de outro objeto persistente B, em sua representação passiva no disco. Não há nada para evitar que um aplicativo delete o objeto persistente B, mesmo que o A possua referência a isto. Na próxima vez em que o A for ativado e tentar acessar o B, um erro de tempo de execução ocorrerá."
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr "Atualmente, não há suporte para o controle de versão de objetos ou reconfiguração de banco de dados, no evento de mudanças de estruturas de classe. Isto é uma área de pesquisa complexa, da qual nós não endereçamos ainda. Caso você mude a definição da classe de objetos persistentes, você será inteiramente responsável em assegurar que instâncias existentes do objeto, no Armazenamento do Objeto, serão convertidas à nova representação. O software de Transações JBoss nunca poderá detectar e nem mesmo corrigir referências para um estado de objeto antigo, pela nova operação."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "O gerenciamento de armazenamento de objeto é extremamente importante ao serviço de transação."
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "Gerenciamento ObjectStore"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr "Quando se tratar da instalação do serviço de transação, o armazenamento do objeto é atualizado regularmente toda vez em que as transações são criadas ou toda vez em que os Objetos Transacionais para Java forem usados. Numa falha de ambiente livre, o único objeto que determina o que deve residir com o armazenamento do objeto, são os objetos representantes criados com os Objetos Tradicionais para o Java API. No entanto, se uma falha ocorrer, os logs de transação poderão permanecer num armazenamento de objeto até que as facilidades de recuperação de travamento tenham resolvido as transações que elas representam. Assim como, é bastante importante que os conteúdos do armazenamento do objeto não sejam deletados sem o devido cuidado e atenção, uma vez que isto tornará impossível a resolução de transações suspeitas. Adicionado a isto, caso múltiplos usuários compartilharem o mesmo armazenamento do objeto, será necessário que eles saibam dis!
 to e não deletem simplesmente o conteúdo do armazenamento do objeto, assumindo que isto é um recurso exclusivo."
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "Informação de tempo de execução de Transações JBoss"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr "Cada módulo, do qual compromete as Transações JBoss, possui uma classe chamada Info. Todas estas classes fornecem um único método toString, que retorna um documento XML, representando a informação de configuração para aquele módulo. Por exemplo: "
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "Administração de recuperação da falha"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr "O sub-sistema de recuperação da falha de Transações JBoss irão garantir que os resultados de uma transação serão aplicados constantemente a todos os recursos afetados pela transação, mesmo que qualquer um dos processos de aplicativo, ou a máquina que os hospeda, travar ou perder a conexão da rede. No caso da máquina (sistema) travar ou a rede falhar, a recuperação não tomará lugar até que o sistema ou a rede forem restaurados. Contudo, o aplicativo original não precisa ser restaurado. A responsabilidade da recuperação é delegar o processo Gerenciador de Recuperação (veja abaixo). A recuperação, depois da falha, solicita que a informação sobre a transação e recursos envolvidos sobrevivam a falha e sejam acessíveis mais tarde (esta informação é retida no ActionStore, do qual faz parte do ObjectStore.)"
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "Caso um ObjectStore seja destruído ou modificado, a recuperação talvez não seja disponível."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"Até que os processos de recuperação sejam completados, os recursos afetados pela transação, que estava em processo no período da falha, poderão tornar-se inacessíveis. Isto poderá ser relatado como tabelas ou filas retidas pelas “in-doubt transactions” (transações suspeitas). A tentativa de ativar o Objeto transacional (como, por exemplo, tentar obter um travamento) falhará para TransactionalObjects "
+"em recursos Java."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "O Gerenciamento de Recuperação"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"O sub-sistema de recuperação de falha de Transações JBoss solicita que o processo Gerenciador de Recuperação stand-alone rode para cada ObjectStore (tipicamente, um para cada nó na rede que está rodando os aplicativos de Transações JBoss). O arquivo RecoveryManager está localizado no arquivo de jarra arjunacore com o pacote <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. Use o seguinte comando para iniciar o Gerenciador de Recuperação:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "Caso o aviso <literal>-test</literal> seja usado com o Gerenciador de Recuperação, será exibida uma mensagem “Ready”, uma vez que isto for inicializado: Por exemplo:"
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Configurando o Gerenciador de Recuperação"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"O RecoveryManager lê as propriedades definidas no arquivo <filename>arjuna."
+"properties</filename> e, também, lê o arquivo de propriedade <filename>RecoveryManager.properties</filename>, a partir do mesmo diretório como encontrado no arquivo de propriedade arjuna. Uma entrada para uma propriedade no arquivo de propriedades RecoveryManager irá substituir uma entrada para a mesma propriedade no arquivo principal de propriedades TransactionService. A maioria das entradas estão especificadas no Gerenciador de Recuperação. "
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr "A versão padrão do <filename>RecoveryManager.properties</filename> é fornecida com a distribuição (isto pode ser usado sem modificação, com exceção da possibilidade de campos de rastreamento de depuração, veja o exemplo abaixo). O resto desta seção trata dos problemas relevantes de configuração de propriedades para outros valores (em ordem de sua aparência, na versão padrão do arquivo)."
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Saída"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"É bem comum que as instalações queiram ter alguma forma de saída do RecoveryManager, para fornecer um registro sobre os acontecimentos da atividade de recuperação. O RecoveryManager usa o mecanismo de rastreamento de log fornecido pelo Arjuna Common Logging Framework (CLF), do qual fornece uma interface de alto nível. Esta esconde diferenças existentes entre o log existente APIs como Jakarta "
+"log4j ou JDK 1.4 logging API. O CLF desvia todos os logs através do framework Apache "
+"Commons Logging e presume-se que a configuração ocorra através daquele framework. "
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"Usando os aplicativos CLF, efetue chamadas log nos objetos logger. Os loggers poderão usar os níveis log para decidir se eles estão interessados numa mensagem de log específica. Cada mensagem log possui um Nível log associado, do qual dá a importância e a urgência da mensagem log. O conjunto de possíveis Níveis de Log são DEBUG, INFO, WARN, ERROR e FATAL. Os níveis definidos são ordenados de acordo com os valores íntegros dos mesmos, como segue a seguir: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"O CFL fornece uma extensão para filtrar mensagens de log de acordo com a definição de um aplicativo a respeito do finer "
+"granularity. Isto é, quando uma mensagem log é fornecida para o logger com o nível de DEBUG, condições adicionais poderão ser especificadas para determinar se uma mensagem log é ativada ou não."
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "Estas condições são aplicadas \"se e apenas\" o nível DEBUG for ativado, e se a solicitação de log executada pelo aplicativo especificar a depuração granulada."
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "Uma vez ativada, a Depuração é filtrada condicionalmente em três variáveis:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "Nível de depuração: é onde a solicitação de log, com o Nível DEBUG, é gerado, por exemplo: construtores ou métodos básicos."
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "Nível de Visibilidade: a visibilidade do construtor, método, etc. Isto gera a depuração."
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Código de Facilidade: para instanciar o pacote ou sub-modulo com que a depuração é gerada, por exemplo: o armazenamento do objeto."
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr "O CLF define três interfaces de acordo com estas variáveis. Um produto particular poderá implementar a própria classe de acordo com o próprio finer granularity. As Transações JBoss usam o nível de Depuração padrão e o nível de Visibilidade padrão fornecida pelo CLF, porém isto determina o próprio Código de Facilidade. As Transações JBoss usam o nível padrão determinado para seus próprios objetos logger (DEBUG). No entanto, elas usam o recurso de depuração fina para desativar ou ativar as mensagens de depuração. Segue abaixo, os valores definidos de depuração fina usados pelas Transações JBoss:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Nível de depuração - as Transações JBoss usam os valores padrões definidos na classe <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING: Não há diagnósticos. Um objeto logger determinado com estes valores descarta todas as solicitações de depuração"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Diagnóstico completo. Um objeto logger determinado com este valor permite todas as solicitações de depuração, no caso do código de facilidade e nível de visibilidade serem compatíveis com aqueles permitidos pelo logger. "
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Os Valores de Depuração Adicionais são:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnósticos a partir de construtores."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS: Diagnósticos a partir de finalizadores."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnósticos a partir de construtores e finalizadores."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS: Diagnósticos a partir de funções."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS: Diagnósticos a partir de operadores, como igualdades."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnósticos a partir de funções e operações."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnósticos a partir de todas operações não-triviais."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS: Diagnósticos a partir de funções triviais."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnósticos a partir de operações triviais e operadores."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL: Diagnósticos a partir de todas operações triviais."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Nível de Visibilidade - as Transações JBoss usam valores de padrão definido na classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE: Sem Diagnóstico"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE: apenas a partir de métodos privados."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED: apenas a partir de métodos protegidos."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC: apenas a partir de métodos públicos."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+msgstr "VIS_JBoss_Transactions_Administrators_Guide: apenas a partir de métodos de pacote."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL: Diagnóstico Completo"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Código de facilidade - as Transações JBoss usam os seguintes valores definidos na classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (código principal de função atômica)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (classes [buffer] de gerenciamento de estado)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (registros abstratos)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (implementações de armazenamento de objeto)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (gerenciamento de estado e StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (classes de implementação de memória compartilhada)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (classes em geral)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr "FAC_CRASH_RECOVERY = 0x00000800 (rastreamento detalhado de classes e módulo de recuperação de travamento)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (classes de segmentação)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 e suporte 2.0)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (saída normal para gerenciamento de recuperação de travamento)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "Para garantia de uma saída apropriada, é necessário configurar, explicitamente, algumas das propriedades de depuração fina no arquivo <filename>CommonLogging.xml</filename>. Isto tudo, para ativar as mensagens de log emitidas pelo módulo de Transações JBoss."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr "As mensagens descrevem o início e o comportamento periódico feito pelo RecoveryManager como saída, se utilizarmos o nível de INFO. Caso outro rastreamento de depuração seja requerido, o nível de depuração fina deve ser propriamente configurado. Por exemplo, a configuração seguinte, no CommonLogging.xml, ativa todas as mensagens de depuração, relatadas ao protocolo de Recuperação de Travamento, e emitidas pelo módulo de Transações JBoss."
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "Dois objetos logger são fornecidos, um gerencia as mensagens I18N e o outro não."
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "A configuração das mensagens de recuperação normal, para o nível INFO, permite um nível moderado de reportagem à Produção RecoveryManager. Caso nada aconteça, isto apenas relata a entrada em cada módulo para cada caminho periódico. Para desativar as mensagens INFO produzidas pelo Gerenciador de Recuperação, o nível log deverá ser configurado num nível mais alto: ERROR. Configurando o nível para ERROR significa que o RecoveryManager irá apenas produzir error, aviso ou mensagens fatais."
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Recuperação Periódica"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"O RecoveryManager verifica o ObjectStore e outras localidades de informação, buscando por transações e recursos que requerem, ou talvez solicitarão, recuperação. A verificação e processo de recuperação são executados pelos módulos de recuperação (instâncias de classes que implementam a interface com.arjuna.ats."
+"arjuna.recovery.RecoveryModule), cada qual com a responsabilidade para uma categoria particular de transação ou recurso. O conjunto de módulos de recuperação usados estão dinamicamente carregados, usando propriedades encontradas no arquivo de propriedade RecoveryManager."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"A interface possui dois métodos: <literal>periodicWorkFirstPass</literal> e "
+"<literal>periodicWorkSecondPass</literal>. Num intervalo, (definido pela propriedade <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>) o RecoveryManager chamará o primeiro método de caminho em cada propriedade, e então esperará por um breve período (definido pela propriedade <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>) para então chamar o segundo caminho de cada módulo. Basicamente, no primeiro caminho, o módulo faz a verificação (por exemplo; a parte relevante do ObjectStore) para encontrar transações ou recursos que são duvidosos (por exemplo; são parte do caminho através do processo de comprometimento). Já no segundo caminho, se qualquer um dos mesmos ítens ainda forem suspeitos, é possível que o processo do aplicativo original trave e o ítem seja um candidato para a recuperação. "
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"A tentativa de recuperar uma transação, pelo RecoveryManager, que ainda está sendo processada no(s) processo(s) original, poderá interromper a consistência. Conseqüentemente, os módulos de recuperação usam um mecanismo (implementado no pacote <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname>) para checar se é que o processo original ainda está vivo e se a transação continua em progresso. O RecoveryManager apenas procede com a recuperação se o processo original se foi. Por outro lado, se ele estiver sobrevivido, a transação será completada. (Caso um processo do servidor ou sistema travar, mas o processo de inicialização de transação sobreviver, a transação será completada, normalmente gerando um aviso. A recuperação de tal transação é responsabilidade do RecoveryManager). "
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"É muito importante configurar os períodos de intervalo propriamente. O período total de interação será a soma do <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> e o período de tempo necessário para verificar os armazenamentos e tentar a recuperação de quaisquer transações encontradas como duvidosas. Isto tudo, para todos os módulos de recuperação. O período de tentativa de recuperação poderá incluir conexões de intervalo enquanto tentando a comunicação com os processos ou sistemas que tenham travado ou estão inacessíveis (sendo este o motivo pelo qual existem mecanismos no mesmo sistema de recuperação para tentar evitar a recuperação de mesma transação para sempre). O período total de interação afetará quanto tempo um recurso permanecerá inacessível, após a falha. O <literal>periodicRecoveryPeriod</literal> deverá ser configurado em concordância (o padrão é 120 segundos). O <literal>recoveryBackoffPeriod</literal> pode ser relativamente menor (o padrão é 10 segundos). Isto tudo, com a principal intenção de reduzir o número de transações qu!
 e são candidatas para a recuperação, e desta forma, solicitar uma \"chamada ao processo original para a verificação de que elas ainda estão em progresso\"."
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "Nas versões anteriores de Transações JBoss não havia mecanismo de contato, além de que o período de backoff necessitava ser longo o suficiente para evitar que transações de captura fossem perdidas pelo mundo afora. Este risco não ocorre a partir do 3.0."
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"Dois módulos de recuperação (implementações da interface <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname>) são supridos com as Transações JBoss, suportando vários aspectos de recuperação de transação, incluindo a recuperação JDBC. É possível que os usuários mais avançados criem os próprios módulos de recuperação e registrem-os com o Gerenciador de Recuperação. Os módulos de recuperação são registrados como o RecoveryManager usando as propriedades que inicializam com “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. Isto será invocado em cada caminho de recuperação periódica em certa ordem de nomes de propriedades - desta forma é possível predizer a ordenação (mas perceba que a falha em um processo de aplicativo poderá ocorrer enquanto o caminho de recuperação periódico estiver em progresso). As configurações de Extensão de recuperação padrão são as seguintes: "
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Remoção da entrada expirada"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"A operação do sub-sistema de recuperação fará com que algumas entradas sejam feitas no ObjectStore, das quais não serão removidas em progresso normal. O RecoveryManager possui a facilidade de verificação destes e dos ítens removidos, dos quais são bastante antigos. A verificação e remoção são executadas pelas implementações da interface <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname>. As implementações desta interface são carregadas fornecendo o nome de classe como um valor de uma propriedade pela qual o nome começa com <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. O RecoveryManager chama o método <command>scan()</command> em cada implementação carregada de Expiry Scanner, no intervalo determinado pela propriedade <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. Este valor é dado em horas - o padrão é 12. Um <classname>expiryScanInterval</classname> de valor zero irá suprir qualquer verificação expirada. Caso o valor fornecido seja positivo, a primeira verificação é impedida até o final do primeiro intervalo (usando o valor absoluto)."
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Os tipos de ítens que são verificados pela expiração são o seguinte:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"Ítens de TransactionStatusManager: um deles é criado por cada processo de aplicativo que usa as Transações JBoss - eles contêm a informação que permite o RecoveryManager a determinar se o processo que inicializou a transação sobreviveu, e qual é o status da transação. O tempo de expiração para isto é configurado pela propriedade <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (em horas - o padrão é 12, zero quer dizer nunca expirado). O tempo de expiração deve ser maior do que o tempo de vida de qualquer Transação JBoss simples, processo de uso."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "As propriedades de Verificação de Expiração são as seguintes:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Erros e Exceções"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "Nesta seção, iremos converter os tipos de erros e exceções que possam ser jogados ou relatados durante um aplicativo transacional, além de fornecer indicações prováveis de suas causas."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr "NO_MEMORY: o aplicativo não possui mais memória (adicione um <classname>OutOfMemoryError</classname>) e as Transações JBoss tentaram realizar uma limpeza (apenas rodando o coletor de lixo) antes de re-adicionar a exceção. Isto é provavelmente um problema transitório e a nova tentativa de invocação deverá ser bem sucedida. "
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr "com.arjuna.ats.arjuna.exceptions.FatalError: ocorreu um erro significando que o sistema de transação deve ser desligado. Antes deste erro ser lançado, o serviço de transação irá certificar-se de que todas as transações tenham sido revertidas. Caso detectado, o aplicativo deverá limpar e encerrar o sistema. E, se houver uma tentativa de um futuro trabalho, a consistência do aplicativo poderá ser violada."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr "com.arjuna.ats.arjuna.exceptions.LicenceError: foi realizada uma tentativa para usar o serviço de transação de uma maneira inconsistente com a licença atual. O serviço de transação não permitirá nenhum progresso futuro para novas ou existentes transações."
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr "com.arjuna.ats.arjuna.exceptions.ObjectStoreError: um erro foi detectado enquanto o serviço de transação tentava usar o armazenamento do objeto. Não foi possível realizar um progresso."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "O armazenamento do objeto avisa antecipadamente que os problemas de acesso nos estados poderão ocorrer durante a execução normal da recuperação de travamento. Este é o resultado de tentativas atuais múltiplas para recuperar o desempenho na mesma transação. Isto pode ser facilmente ignorado."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Selecionando a implementação JTA"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "Duas variantes da implementação JTA são agora fornecidas e acessíveis através da mesma interface. Elas são:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr "Um puro JTA local, que apenas permite transações JTA não-distribuídas a serem executadas. Esta é a única versão disponível com o produto de Transações JBoss."
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "Uma remoção, JTA CORBA baseada, que permite transações JTA distribuídas a serem executadas. Esta versão é apenas disponível com o produto ArjunaJTS e requer um CORBA ORB suportado."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "ambas implementações são inteiramente compatíveis com o driver JDBC transacional fornecido com as Transações JBoss."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "Para se realizar a seleção da implementação local JTA local, é necessário executar os seguintes passos:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"certifique-se de que a propriedade <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> é configurada para <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"certifique-se de que a propriedade <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> é configurada para <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "estas configurações são valores padrões para as propriedades e não precisam ser especificadas, caso a implementação local seja requerida."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# translation of Feedback.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-18 08:29+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Comentários"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"Caso você encontre um erro neste guia ou se você pensar numa maneira diferente de fazer este manual ainda melhor, queremos muito de ouvir sua opinião. Por favor, submeta o relatório em <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> em referência ao Produto: Plataforma de Aplicativo JBoss Enterprise, Versão: <replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. Caso tenha alguma sugestão para aperfeiçoamento desta documentação, por favor seja o mais específico possível. E, se você encontrar um erro, inclua o número de seção e algumas partes do texto ao redor, para que possamos localizá-lo com mais facilidade."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,127 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-19 16:13+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Prefácio"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "O que contém neste Guia"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr "O Guia de Administração contém informações de como administrar as Transações JBoss API 4.2.3"
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Audiência"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Este guia é muito mais relevante para engenheiros, dos quais são responsáveis pela administração das instalações de Transações JBoss 4.2.3."
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Pré- Requisitos"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Para que se possa administrar as Transações JBoss, é necessário primeiro entender que elas baseiam-se no ArjunaCore, em muitas das funcionalidades da transação. Assim como, é importante ler o Guia Administrativo ArjunaCore antes de tentar administrar as Transações JBoss."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organização"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Este guia contém o seguinte capítulo:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "Capítulo 1 - Administração das Transações JBoss: descreve como administrar as Transações JBoss, basicamente selecionando a variante de implementação JTA, local limpo ou remoto (permitindo as transações distribuídas)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Documentação Adicional"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr "Os seguintes guias estão disponíveis no conjunto de documentação das Transações JBoss API 4.2.3:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "Notas de Liberação de Transações JBoss API 4.2.3: Fornece informações recentes sobre Transações JBoss API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "Guia de Instalação de Transações JBoss API 4.2.3: Este guia fornece instruções para instalação de Transações JBoss API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "Guia do Programador das Transações JBoss 4.2.3: Fornece instruções para aplicativos escritos."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-17 14:47+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+# translation of Appendix.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:36+0000\n"
+"PO-Revision-Date: 2008-06-24 11:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "修订记录"
+
+#. Tag: para
+#: Appendix.xml:10
+#, no-c-format
+msgid "<para>TBD</para>"
+msgstr "<para>TBD</para>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:36+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "FF0000 Headgear Documentation Group"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:38+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "JBoss Transactions API 4.2.3 管理员指南"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss 企业级应用程序平台"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "本书是面向 JBoss 企业级应用程序平台的《JBoss Transactions 管理员指南》"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1040 @@
+# translation of Chapter.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:36+0000\n"
+"PO-Revision-Date: 2008-06-24 14:07+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"为了确保系统的正常运行,你需要对 JBoss Transactions 进行一点持续的管理。下面"
+"是一些需要注意的地方:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+"目前 JBoss TA 系统的实现没有提供安全性或对数据的保护。存储在 JBoss "
+"Transactions 的 object store 里的对象通常为运行创建这些对象的应用程序的用户所"
+"有。Object Store 和 Object Manager 机制甚至没有强制 Unix/Windows 所提供的有限"
+"的保护。对这些对象的读和写并不需要检查用户或组的 ID。"
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+"除非调用 StateManager.destroy 方法或某个应用程序显性地进行删除,在 Object Store 里创建的持久性对象会永远存在。这意味着 "
+"Object Store 会逐渐地积累垃圾(特别是在程序开发和测试阶段)。目前我们还没有自动的垃圾回收机制。而且,我们也还没解决 dangling "
+"引用的问题:某个持久性对象 A,可能在其磁盘上的 passive representation 里存储了另外一个持久性对象 B 的 "
+"UID。应用程序有可能删除了 B,即使 A 仍然具有对其的引用。之后 A 被激活并试图访问 B 时,就会出现一个运行错误。"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+"目前没有对类结构改变时对象或数据库重配置的版本控制的支持。这是我们还没解决的一个复杂的研究领域。目前,如果你修改了持久性对象的类的定义,你需要完全负责确保 "
+"Object Store 里的现存实例转换成新的结构。JBoss Transactions 既不能检测也不能改正通过新的操作版本对旧的对象状态的引用,反之亦然。"
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "对于事务服务来说,Object store 的管理至关重要。"
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "管理 ObjectStore "
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"在事务访问安装里,只要有事务被创建或是用于 Java 的 Transactional Object 被使用,object store "
+"就会被更新。在无故障的环境里,唯一应该驻留在 object store 里的对象状态时那些代表用 Java API "
+"然而,如果发生了故障,事务日志可能保留在 object store 里,直到故障恢复机制已经恢复了它们所代表的事务。因此,删除 object store 的内容需要很小心和谨慎,这很重要,因为这会导致无法解决可疑的事务。此外,如果多个用户共享相同的 object store,他们也需明白这一点。他们不能假定 object store 里的内容是独占资源而简单地进行删除。"
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "JBoss Transactions 的运行信息"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+"组成 JBoss Transactions 的每个模块都拥有一个名为 info 的类。这些类都提供单一的 toString 方法来返回代表该模块的配置信息的 "
+"XML 文档。例如:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "失效切换管理"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"JBoss Transactions "
+"的失效切换子系统将确保在即使应用程序进程或主机崩溃或断开了网络连接的情况下,事务的结果都可以持续地应用到事务所影响的资源里。在主机(系统)崩溃或网络故障时,失效"
+"切换将直到系统或网络恢复时才进行,但原来的应用程序不需要重启 - 切换的责任委托给了 Recovery Manager "
+"进程(请参考下面内容)。失效切换要求和事务和资源相关的信息:这些信息保存在作为 ObjectStore 一部分的 ActionStore 里。"
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "如果 ObjectStore 被销毁或修改,失效切换有可能无法进行。"
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"直到失效切换过程完成之前,故障发生时正进行的事务所影响的资源都可能无法访问。对于数据库资源而言,可能出现表或行被“in-doubt "
+"transactions”锁定。对于用于 Java 资源的 TransactionalObjects,试图激活 Transactional "
+"Object(尝试获取锁)将失败。"
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"JBoss Transactions 的失效切换(failure recovery)子系统要求为每个 ObjectStore(通常是网络上的每个运行 "
+"JBoss Transactions 应用程序的节点)运行独立的 Recovery Manager 进程。RecoveryManager 文件位于 <"
+"classname>com.arjuna.ats.arjuna.recovery.RecoveryManager</classname> 包里的 "
+"arjunacore jar 中。要启动 Recovery Manager,你可以使用下面的命令:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "如果使用了 <literal>-test</literal> 标签,它将在初始化时显示“Ready”信息,也就是:"
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "配置 Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"RecoveryManager 读取 <filename>arjuna.properties</filename> "
+"文件里定义的属性,然后读取相同目录下的属性文件 <filename>RecoveryManager.properties</filename>"
+"。RecoveryManager 属性文件里的条目将覆盖 TransactionService 属性文件里相同的条目。大多数条目都是 Recovery "
+"Manager 所专有的。"
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"本发行版本提供一个缺省的 <filename>RecoveryManager.properties</filename> 版本 - "
+"它无需修改就可以使用,除了一些调试跟踪的字段(请参考下面的 Output)。本节剩下的内容将讨论将属性设置为其他值所相关的问题(按照在缺省版本里出现的顺序)。"
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Output"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"很可能安装将希望从 RecoveryManager 里获得某种形式的输出来提供发生恢复的记录。RecoveryManager 使用 Arjuna Common Logging Framework (CLF) 提供的日志跟踪机制,它提供了一个隐藏了现有的 logging API 如 Jakarta "
+"log4j 或 JDK 1.4 logging API 之间的差异的高级别的接口。CLF 通过 Apache "
+"Commons Logging 框架间接处理日志,其配置假定存在于该框架内。"
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr "用 CLF 应用程序来调用 logger 对象的日志调用。Logger 可以使用日志级别来决定具体的日志信息。每个日志信息都有一个相关的日志级别来表示重要和紧急程度。日志级别可以是 DEBUG、INFO、WARN、 ERROR 和 FATAL。按整形值的顺序排列为:DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL。"
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr "CLF 提供按照定义的颗粒度过滤日志消息的扩展。这就是说,当 DEBUG 级别的日志消息被提供给 logger时,你可以指定其他的条件来决定是否启用这个日志消息。"
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "只有启用了 DEBUG 级别且日志请求由应用程序专有的调试颗粒度执行时,才能应用这些条件。"
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "被启用后,日志消息根据 3 个变量进行有条件地过滤:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "调试级别(Debugging level):DEBUG 级别的日志请求产生的地方,如构造函数或基本方法。"
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "可见级别(Visibility level):产生调试信息的构造函数、方法等的可见性。"
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Facility code:例如产生调试信息的包或子模块,如 ObjectStore。"
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"根据这些变量,CLF 定义了 3 个接口。特定的产品可以按照需要实现自己的类。JBoss Transactions 使用 CLF 提供的缺省 Debugging level 和 Visibility level,但它定义自己的 Facility "
+"Code。JBoss Transactions 使用分配给 logger 对象的缺省的级别(DEBUG)。然而,它使用 finer debugging 特征来禁用或启用调试消息。JBoss Transactions 使用的 finer debugging 值有:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Debugging level – JBoss Transactions 使用 <classname>com.arjuna.common.util.logging.DebugLevel</classname> 类里定义的缺省值"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING:  No diagnostics. 这个值分配的 Logger 对象丢弃所有的调试请求。"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Full diagnostics. 如果 facility code 和 the visibility level 符合 logger 所允许的值,这个值分配的 Logger 对象允许所有的调试请求。"
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "其他的调试值有:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnostics from constructors."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnostics from finalizers."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS:  Diagnostics from functions."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnostics from operators, such as equals."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnostics from functions and operations."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Visibility level – JBoss Transactions 使用 <classname>com.arjuna.common.util.logging.VisibilityLevel</classname> 类里定义的缺省值"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  No Diagnostic"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  only from private methods."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  only from protected methods."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   only from public methods."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr "VIS_PACKAGE   only from package methods."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Full Diagnostic"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Facility Code – JBoss Transactions 使用 <classname>com.arjuna.common.util.logging.VisibilityLevel</classname> 类定义的下列值"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (general classes)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (threading classes)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "为了保证合适的输出,我们有必要在 <filename>CommonLogging.xml</filename> 文件里对一些调试属性进行更详细的设置,启用 JBoss Transactions 模块登记的日志信息。"
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+"描述启动和 RecoveryManager 的定期行为的消息使用 INFO 级别的输出。如果需要其他调试跟踪信息,你应该设置更详细的调试级别。例如,下面 CommonLogging.xml 里的配置,启用了和 Crash Recovery 协议相关以及 JBoss "
+"Transactions 产生的所有调试信息。"
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "这里提供了两个 logger 对象,一个管理 I18N 消息而另外一个则处理其他消息。"
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "把常规恢复消息设置为 INFO 级别允许 RecoveryManager 产生适度的报告。如果没有发生任何事情,它仅仅报告模块的定期登录。要禁用 Recovery Manager 提供的 INFO 消息,调试级别可以设为更高的 ERROR 级别。这表示 RecoveryManager 将只产生错误、警告或致命错误信息。"
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "定期恢复"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"RecoveryManager 扫描 ObjectStore 以及信息的其他位置,寻找需要恢复的事务和资源。这个扫描和恢复过程由恢复模块来执行(实现 com.arjuna.ats."
+"arjuna.recovery.RecoveryModule 接口的类的实例),每个都负责特定类别的事务和资源。恢复模块使用 RecoveryManager 属性文件里找到的属性动态地进行加载。"
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"这个接口有两个方法:<literal>periodicWorkFirstPass</literal> 和 "
+"<literal>periodicWorkSecondPass</literal>。根据 <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname> 属性定义的间隔,RecoveryManager 件将在每个属性上调用第一个 pass 方法,然后等待一段短暂的时间(由 <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname> 属性定义)。通常,在第一个 pass 方法里,模块通过扫描(例如 ObjectStore 的相关部分)来发现可疑的事务和资源(也就是提交过程进行一部分)。在第二个 pass 方法里,如果任何相同的事务或资源仍然可疑,那么原来的应用程序就有可能已经崩溃,这些事务和资源就需要进行恢复。"
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"RecoveryManager 试图恢复仍然在原来进程里进行的事务有可能会破坏一致性。因此,恢复模块使用一个机制(在 <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> 包里实现)来检查原来的进程是否仍然活动,且事务是否仍在进行。RecoveryManager 只在原始进程已经结束时才进行恢复,如果进程仍然活动,则在事务完成后进行。(如果服务器进程或主机崩溃了,但初始事务的基础仍然活动,事务也会完成并通常产生一个警告。RecoveryManager 也负责恢复这样的事务。)"
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"设置合适的时间间隔显然很重要。重复时间将是 <literal>periodicRecoveryPeriod</"
+"literal>、<literal>recoveryBackoffPeriod</literal> 和所有恢复模块扫描 ObjectStore 并试图恢复可疑事务所需时间的总和。恢复时间可能包括试图和已经崩溃或无法访问的进程或主机通信所需的连接超时时间(这是为什么在恢复系统里有机制避免试图恢复相同的事务)。总共的重复时间将影响在发生故障后资源保持无法访问状态的时间 - <literal>periodicRecoveryPeriod</literal> 应该相应地进行设置(缺省是 120 秒)。<literal>recoveryBackoffPeriod</literal> 可以相对较短(缺省是 10 秒) - 它的目的主要是减少事务作为恢复备选对象的次数(这需要访问原始进程,检查事务是否仍在进行)。"
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "JBoss Transactions 之前的版本里没有 contact 机制,你得把 backoff period 设置为足够久来避免缓存事务冲突。从 3.0 版本后,这不再是一个问题。"
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"JBoss Transactions 提供了两个恢复模块(<classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> 接口的实现),它们支持不同的事务恢复(包括 JDBC 恢复)。高级用户有可能创建自己的恢复模块并向 Recovery Manager 注册。恢复模块使用以“<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”开始的属性向 Recovery Manager 注册。它们将按照属性名称的顺序调用其定期恢复的 pass 方法(但请注意在定期恢复的 pass 方法运行时,可能会发生应用程序进程失效)。缺省的 Recovery Extension 设置是:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "删除过期的条目"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"恢复子系统的操作将导致 ObjectStore 创建的某些条目在常规情况下不会被删除。RecoveryManager 里有一个工具可以扫描和删除那些很旧的的条目。<classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> 接口的实现执行这种扫描和删除。这个实现通过把类名作为以 <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname> 开始的属性的值来加载。RecoveryManager 按照属性 <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname> 指定的时间间隔调用每个加载的 Expiry Scanner 实现的 <command>scan()</command> 方法。这个值以小时为单位 - 缺省为 12。零值的 <classname>expiryScanInterval</classname> 将忽略任何过期扫描。如果这个值为正值,RecoveryManager 启动时将执行第一次扫描;如果为负值,第一次扫描将直到第一个间隔(使用绝对值)后才发生。"
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "扫描过期的条目类型包括:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager 条目:使用 JBoss Transactions 的每个应用程序进程创建的条目 - 它们包含允许 RecoveryManager 决定初始化事务的进程是否仍然活动、以及事务状态的信息。过期时间由属性 <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname>(以小时为单位 - 缺省为 12,0 表示永不过期)设置。过期时间应该大于任何单个 JBoss Transactions-using 进程的生存时间。"
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Expiry Scanner 属性是:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "错误和异常"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "本节将涵盖在事务行应用程序运行时可能抛出或报告的错误和异常类型,并给出可能的原因。"
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY:应用程序已耗尽内存(抛出 <classname>OutOfMemoryError</classname>)且 JBoss "
+"Transactions 在重新抛出这个异常时已经试图进行清理(通过运行 garbage collector)。这可能是一个暂时的问题,重试应该能够成功。"
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions."
+"FatalError:表示事务系统必须关闭的错误已经发生。在抛出这个错误之前,服务将确保所有的事务都进行了回滚。如果捕获了这个异常,应用程序应该清理并退出。如果"
+"进行进一步尝试,可能会破坏应用程序的一致性。"
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions."
+"LicenceError:尝试以和当前许可证不一致的方式使用事务服务。事务服务将不会允许对现有的或新的事务进行进一步的行动。"
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError:事务服务试图使用 object store "
+"时产生了错误。进一步的行动不被允许。"
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "在失效切换的正常执行过程中,可能出现关于状态访问的 Object store 的警告。这是因为在相同的事务上执行多个并行的失效切换。它可以被忽略而无安全隐患。"
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "选择 JTA 实现"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "目前可通过相同的接口访问两个 JTA 实现的变种。它们是:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr "纯本地的 JTA,它只允许执行非分布式的 JTA 事务。JBoss Transactions 产品里只有这个版本可用。"
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "远程的,基于 CORBA 的 JTA,它允许执行分布式的 JTA 事务。它只在 ArjunaJTS 里可用且需要对 CORBA ORB 的支持。"
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "这两种实现都和 JBoss Transactions 提供的事务性的 JDBC 驱动完全兼容。"
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "要选择本地的 JTA 实现,你必须执行下面的步骤:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"确保属性 <literal>com.arjuna.ats.jta.jtaTMImplementation</literal> 被设置为 <literal>"
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple<"
+"/literal>。"
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"确保属性 <literal>com.arjuna.ats.jta.jtaUTImplementation</literal> 被设置为 <literal>"
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple<"
+"/literal>。"
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "这些设置都是这些属性的缺省值,如果使用本地实现的话,你不需要进行指定。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,43 @@
+# translation of Feedback.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-24 11:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "反馈"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"如果你在本指南里发现了印刷错误,或者你有改进该手册的建议,我们希望听到你的声音!请提交报告到  <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> 并指明:产品:JBoss 企业级应用"
+"程序平台, 版本:<replaceable>&lt;version&gt;</replaceable>,组件:<emphasis>Doc</"
+"emphasis>。"
+"如果是改进本文档的建议,请尽量具体化;如果是其他错误,请指出章节号以及具体的内容"
+",这样我们就可以尽快改正。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,131 @@
+# translation of Preface.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 11:05+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序言"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "本书包含的内容"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+"《管理员指南》包含如何管理 JBoss "
+"Transactions API 4.2.3 的信息。"
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "读者"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "本书面向负责 JBoss Transactions API 4.2.3 安装管理的工程师。"
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "预备条件"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "为了管理 JBoss Transactions,你首先必须理解它的很多事务方面的功能依赖于 ArjunaCore。因此,在管理 JBoss Transactions 之前,先阅读《ArjunaCore 管理员指南》是很重要的。"
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "本书的结构"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "本指南包含下面的章节:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "第一章,JBoss Transactions 管理:描述如何使用不同的 JTA 实现来管理 JBoss Transactions:纯 local 或 remote 方式(允许分布式事务)。"
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "其他文档"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+"除了本指南外, JBoss "
+"Transactions API 4.2.3 的文档集里还有如下的文档:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 发行注记:提供 JBoss Transactions API 4.2.3 的最新信息。"
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 安装指南:提供 JBoss Transactions API 4.2.3 的安装说明。"
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "JBoss Transactions API 4.2.3 程序员指南:指导如何编写相关应用程序。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Administrators_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-24 11:43+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,19 @@
+#Makefile for Red Hat Documentation
+#Created by Jeff Fearn <jfearn at redhat.com>
+#Copyright Red Hat Inc. 2006
+
+XML_LANG	= en-US
+# FIX_ME!
+DOCNAME		= JBoss_TS_Programmers_Guide
+# Be Careful with PRODUCT!
+# Only Set This if you want theis Book to be placed in a sub directory when published
+# defaults to RHEL
+#PRODUCT	= FIX_ME!
+
+TRANSLATIONS	= $(XML_LANG)
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+#TRANSLATIONS	= $(XML_LANG) $(OTHER_LANGS)
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/Makefile
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_A.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_A.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_A.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,269 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix>
+    <title>Appendix A: Object store implementations</title>
+    
+    <section>
+        <title>The ObjectStore</title>
+		<para>
+			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.
+		</para>
+		<para>
+			This release of JBossTS contains several different implementations of a basic object store. Each serves a particular purpose and is generally optimised for that purpose. All of the implementations are derived from the <interface>ObjectStore</interface> interface. This defines the minimum operations which must be provided in order for an object store implementation to be used by JBossTS. The default object store implementation can be overridden at runtime by setting the <property>com.arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable to one of the types described below.
+		</para>
+<screen>
+	/*
+	* This is the base class from which all object store types are derived.
+	* Note that because object store instances are stateless, to improve
+	* efficiency we try to only create one instance of each type per process.
+	* Therefore, the create and destroy methods are used instead of new
+	* and delete. If an object store is accessed via create it *must* be
+	* deleted using destroy. Of course it is still possible to make use of
+	* new and delete directly and to create instances on the stack.
+	*/
+	
+	public class ObjectStore
+	{
+	public static final int OS_COMMITTED;
+	public static final int OS_COMMITTED_HIDDEN;
+	public static final int OS_HIDDEN;
+	public static final int OS_INVISIBLE;
+	public static final int OS_ORIGINAL;
+	public static final int OS_SHADOW;
+	public static final int OS_UNCOMMITTED;
+	public static final int OS_UNCOMMITTED_HIDDEN;
+	public static final int OS_UNKNOWN;
+	public ObjectStore (ClassName type);
+	public ObjectStore (ClassName type, String osRoot);
+	public ObjectStore (String osRoot);
+	public synchronized boolean allObjUids (String s, InputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized boolean allObjUids (String s, InputObjectState buff,
+	int m) throws ObjectStoreException;
+	
+	public synchronized boolean allTypes (InputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized int currentState(Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean commit_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean hide_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean reveal_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized InputObjectState read_committed (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized InputObjectState read_uncommitted (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean remove_committed (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean remove_uncommitted (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean write_committed (Uid u, String tn,
+	OutputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized boolean write_uncommitted (Uid u, String tn,
+	OutputObjectState buff)
+	throws ObjectStoreException;
+	public static void printState (PrintStream strm, int res);
+};			
+</screen>
+		<para>
+			JBossTS programmers need not usually interact with any of the object store implementations directly other than possibly to create them in the first place (even this is not necessary if the default store type is used as JBossTS will create stores as necessary). All stores manipulate instances of the class <classname>ObjectState</classname> which are named using a type (via the object's type() operation) and a Uid. For atomic actions purposes object states in the store can be principally in two distinct states: OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED state but when modified under the control of an atomic action a new second object state may be written that is in the OS_UNCOMMITTED state. If the action commits this second object state replaces the original and becomes OS_COMMITTED. If the action aborts, this second object state is simply discarded. All of the implementations provided with this release handle these state transitions by ma!
 king use of shadow copies of object states, 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.
+		</para>
+		<para>
+			Browsing of the contents of a store is possible through the <methodname>allTypes</methodname> and <methodname>allObjUids</methodname> operations. <methodname>allTypes</methodname> returns an <type>InputObjectState</type> containing all of the type names of all objects in a store, terminated by a null name. <methodname>allObjUids</methodname> returns an <type>InputObjectState</type> that contains all of the Uids of all objects of a given type terminated by the special <methodname>Uid.nullUid()</methodname>.
+		</para>
+    </section>
+    <section id="Persistent_object_stores">
+	    <title>Persistent object stores</title>
+	    	<para>
+			This section briefly describes the characteristics and optimisations of each 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.
+		</para>
+		<formalpara>
+			<title>Common functionality</title>
+			<para>In addition to the features mentioned earlier all of the supplied persistent object stores obey the following rules:</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Each object state is stored in its own file that is named using the <code>Uid</code> of the object.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The type of an object (as given by the <methodname>type()</methodname> operation) determines the directory into which the object is placed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					All stores also have the notion of a localised root directory that is 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>.
+				</para>
+			</listitem>
+		</itemizedlist>
+<screen>
+&lt;ObjectStore root Directory from configure&gt;	/JBossTS/ObjectStore/
+	&lt;ObjectStore Type1&gt;			FragmentedStore/
+		&lt;Default root&gt;			defaultStore/
+			&lt;StateManager&gt;			StateManager
+				&lt;LockManager&gt;			LockManager/
+					&lt;User Types&gt;		
+	&lt;Localised root 2&gt;		myStore/
+		&lt;StateManager&gt;			StateManager/
+									
+	&lt;ObjectStore Type2&gt;		ActionStore/
+		&lt;Default root&gt;			defaultStore/	
+</screen>
+    
+		<formalpara>
+			<title>The shadowing store</title>
+			<para>
+				This is the original version of the object store as provided in prior releases and is implemented by the class <classname>ShadowingStore</classname>. It is simple but slow. It uses pairs of files to represent objects (the shadow version and the committed version) and files are opened, locked, operated upon, unlocked and closed on every interaction with the object store. Thus significant portions of time can be spent in the system simply opening, closing and renaming files, all of which are very expensive operations.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowingStore</type>.
+		</para>
+		<formalpara>
+			<title>No file-level locking</title>
+			<para>
+				Since transactional objects are concurrency controlled through <methodname>LockManager</methodname>, it is not necessary to impose additional locking at the file level, as the basic ShadowingStore implementation does. Therefore, the default object store implementation for JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-level locking. This enables it to provide better performance than the <methodname>ShadowingStore</methodname> implementation.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowNoFileLockStore</type>.
+		</para>
+		<formalpara>
+			<title>The hashed store</title>
+				<para>
+					The <code>HashedStore</code> has the same structure for object states as the shadowing stores but has an alternate directory structure that is better suited to storing large numbers of objects of the same type. Using this store objects are scattered amongst a set of directories by applying a 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.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>HashedStore</type>.
+		</para>
+		<formalpara>
+			<title>No file-level locking</title>
+				<para>
+					Since transactional objects are concurrency controlled through <methodname>LockManager</methodname>, it is not necessary to impose additional locking at the file level, as the basic <methodname>ShadowingStore</methodname> implementation does. Therefore, the default object store implementation for JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-level locking. This enables it to provide better performance than the <methodname>ShadowingStore</methodname> implementation.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowNoFileLockStore</type>.
+		</para>
+		<formalpara>
+			<title>The hashed store</title>
+			<para>
+				The <methodname>HashedStore</methodname> has the same structure for object states as the shadowing stores but has an alternate directory structure that is better suited to storing large numbers of objects of the same type. Using this store objects are scattered amongst a set of directories by applying a 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.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>HashedStore</type>.
+		</para>
+		<formalpara>
+			<title>The JDBC store</title>
+			<para>
+				The <methodname>JDBCStore</methodname> uses a JDBC database to save persistent object states; when used in conjunction with the Transactional Objects for Java API nested transaction support is available. In the current implementation, all object states are stored as Binary Large Objects (BLOBs) within the same table. The limitation on object state size imposed by using 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.
+			</para>
+		</formalpara>
+		<para>
+			When using the JDBC object store, the application must provide an implementation of the following interface, located in the <code>com.arjuna.ats.arjuna.objectstore</code> package:
+		</para>
+<screen>
+public interface JDBCAccess
+{
+	public Connection getConnection () throws SQLException;
+	public void putConnection (Connection conn) throws SQLException;
+	public void initialise (ObjectName objName);
+}
+</screen>
+		<para>
+			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:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>getConnection</methodname>: returns the Connection to use. This method will be called whenever a connection is required and the 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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>initialise</methodname>: this can be used to pass additional arbitrary information to the implementation.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The JDBC object store will initially request the number of Connections defined in the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial</property> property and will use no more than defined in the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</property> property.
+		</para>
+		<para>
+			The implementation of the <interfacename>JDBCAccess</interfacename> interface to use should be set in the <property>com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess</property> property variable.
+		</para>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>JDBCStore</type>.
+		</para>
+		<para>
+			A JDBC object store can be used for managing the transaction log. In this case, the transaction log implementation should be set to <property>JDBCActionStore</property> and the <methodname>JDBCAccess</methodname> implementation must be provided via the <property>com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this case, the default table name is JBossTSTxTable.
+		</para>
+		<note>
+			<para>
+				It is possible to use the same JDBCAccess implementation for both the user object store and also the transaction log.
+			</para>
+		</note>
+		<formalpara>
+			<title>The cached store</title>
+				<para>
+					This object store used the hashed object store, but does not read or write states to the persistent backing store immediately. It maintains the states in a volatile memory cache and either flushes the cache periodically or when 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.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>CachedStore</type>.
+		</para>
+		<para>
+			The store can be configured with the following properties:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</property> sets the number of internal stores to hash the states over. The default value is 128.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</property> is the maximum size the cache can reach before a flush is triggered. The default is 10240 bytes.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.removedItems</property> is the maximum number of removed items that the cache can contain before a flush is triggered. By default, calls to remove a state that is in the cache will simply remove the state from the cache, but leave a blank entry (rather than remove the entry immediately, which would 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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</property> sets the time in milliseconds for periodically flushing the cache. The default is 120 seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</property> determines whether flushes of the cache are sync-ed to disk. The default is OFF. To enable, set to ON.
+				</para>
+			</listitem>
+		</itemizedlist>
+    </section>
+</appendix>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_A.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_B.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_B.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_B.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,235 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix>
+   <title>Appendix B: Class definitions</title>
+    
+    <section>
+        <title>Introduction</title>
+	<para>
+		This appendix contains an overview of those classes that the application programmer will typically use. The aim of this appendix is to provide a 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.
+	</para>
+    </section>
+    <section>
+    	<title>Class library</title>
+	<formalpara>
+		<title>Lock Manager</title>
+		<para></para>
+	</formalpara>
+<screen>
+public class LockResult
+{
+	public static final int GRANTED;
+	public static final int REFUSED;
+	public static final int RELEASED;
+};
+	
+public class ConflictType
+{
+	public static final int CONFLICT;
+	public static final int COMPATIBLE;
+	public static final int PRESENT;
+};
+	
+public abstract class LockManager extends StateManager
+{
+	public static final int defaultRetry;
+	public static final int defaultTimeout;
+	public static final int waitTotalTimeout;
+	
+	public final synchronized boolean releaselock (Uid lockUid);
+	public final synchronized int setlock (Lock toSet);
+	public final synchronized int setlock (Lock toSet, int retry);
+	public final synchronized int setlock (Lock toSet, int retry, int sleepTime);
+	public void print (PrintStream strm);
+	public String type ();
+	public boolean save_state (OutputObjectState os, int ObjectType);
+	public boolean restore_state (InputObjectState os, int ObjectType);
+	
+	protected LockManager ();
+	protected LockManager (int ot);
+	protected LockManager (int ot, ObjectName attr);
+	protected LockManager (Uid storeUid);
+	protected LockManager (Uid storeUid, int ot);
+	protected LockManager (Uid storeUid, int ot, ObjectName attr);
+	
+	protected void terminate ();
+};
+</screen>
+	<formalpara>
+		<title>StateManager</title>
+		<para></para>
+	</formalpara>
+<screen>
+public class ObjectStatus
+{
+	public static final int PASSIVE;
+	public static final int PASSIVE_NEW;
+	public static final int ACTIVE;
+	public static final int ACTIVE_NEW;
+};
+	
+public class ObjectType
+{
+	public static final int RECOVERABLE;
+	public static final int ANDPERSISTENT;
+	public static final int NEITHER;
+};
+	
+public abstract class StateManager
+{
+	public boolean restore_state (InputObjectState os, int ot);
+	public boolean save_state (OutputObjectState os, int ot);
+	public String type ();
+	
+	public synchronized boolean activate ();
+	public synchronized boolean activate (String rootName);
+	public synchronized boolean deactivate ();
+	public synchronized boolean deactivate (String rootName);
+	public synchronized boolean deactivate (String rootName, boolean commit);
+	
+	public synchronized int status ();
+	public final Uid get_uid ();
+	public void destroy ();
+	public void print (PrintStream strm);
+	
+	protected void terminate ();
+	
+	protected StateManager ();
+	protected StateManager (int ot);
+	protected StateManager (int ot, ObjectName objName);
+	protected StateManager (Uid objUid);
+	protected StateManager (Uid objUid, int ot);
+	protected StateManager (Uid objUid, int ot, ObjectName objName);
+	protected synchronized final void modified ();
+};
+</screen>
+	<formalpara>
+		<title>Input/OutputObjectState</title>
+		<para></para>
+	</formalpara>
+<screen>
+class OutputObjectState extends OutputBuffer
+{
+	public OutputObjectState (Uid newUid, String typeName);
+	
+	public boolean notempty ();
+	public int size ();
+	public Uid stateUid ();
+	public String type ();
+};
+class InputObjectState extends ObjectState
+{
+	public OutputObjectState (Uid newUid, String typeName, byte[] b);
+	
+	public boolean notempty ();
+	public int size ();
+	public Uid stateUid ();
+	public String type ();
+};
+</screen>
+	<formalpara>
+		<title>Input/OutputBuffer</title>
+		<para></para>
+	</formalpara>
+<screen>
+public class OutputBuffer
+{
+	public	OutputBuffer ();
+	
+	public final synchronized boolean valid ();
+	public synchronized byte[] buffer();
+	public synchronized int length ();
+	
+	/* pack operations for standard Java types */
+	
+	public synchronized void packByte (byte b) throws IOException;
+	public synchronized void packBytes (byte[] b) throws IOException;
+	public synchronized void packBoolean (boolean b) throws IOException;
+	public synchronized void packChar (char c) throws IOException;
+	public synchronized void packShort (short s) throws IOException;
+	public synchronized void packInt (int i) throws IOException;
+	public synchronized void packLong (long l) throws IOException;
+	public synchronized void packFloat (float f) throws IOException;
+	public synchronized void packDouble (double d) throws IOException;
+	public synchronized void packString (String s) throws IOException;
+};
+public class InputBuffer
+{
+	public	InputBuffer ();
+	
+	public final synchronized boolean valid ();
+	public synchronized byte[] buffer();
+	public synchronized int length ();
+	
+	/* unpack operations for standard Java types */
+	
+	public synchronized byte unpackByte () throws IOException;
+	public synchronized byte[] unpackBytes () throws IOException;
+	public synchronized boolean unpackBoolean () throws IOException;
+	public synchronized char unpackChar () throws IOException;
+	public synchronized short unpackShort () throws IOException;
+	public synchronized int unpackInt () throws IOException;
+	public synchronized long unpackLong () throws IOException;
+	public synchronized float unpackFloat () throws IOException;
+	public synchronized double unpackDouble () throws IOException;
+	public synchronized String unpackString () throws IOException;
+};
+</screen>
+	<formalpara>
+		<title>Uid</title>
+		<para></para>
+	</formalpara>
+<screen>
+public class Uid implements Cloneable
+{
+	public Uid ();
+	public Uid (Uid copyFrom);
+	public Uid (String uidString);
+	public Uid (String uidString, boolean errorsOk);
+	public synchronized void pack (OutputBuffer packInto) throws IOException;
+	public synchronized void unpack (InputBuffer unpackFrom) throws IOException;
+	
+	public void print (PrintStream strm);
+	public String toString ();
+	public Object clone () throws CloneNotSupportedException;
+	public synchronized void copy (Uid toCopy) throws UidException;
+	public boolean equals (Uid u);
+	public boolean notEquals (Uid u);
+	public boolean lessThan (Uid u);
+	public boolean greaterThan (Uid u);
+	
+	public synchronized final boolean valid ();
+	public static synchronized Uid nullUid ();
+};
+</screen>
+	<formalpara>
+		<title>AtomicAction</title>
+		<para></para>
+	</formalpara>
+<screen>
+public class AtomicAction
+{
+	public AtomicAction ();
+	
+	public void begin () throws SystemException, SubtransactionsUnavailable,
+	NoTransaction;
+	public void commit (boolean report_heuristics) throws SystemException, 
+	NoTransaction, HeuristicMixed,
+	HeuristicHazard,TransactionRolledBack;
+	public void rollback () throws SystemException, NoTransaction;
+	public Control control () throws SystemException, NoTransaction;
+	public Status get_status () throws SystemException;
+	/* Allow action commit to be supressed */    
+	public void rollbackOnly () throws SystemException, NoTransaction;
+	
+	public void registerResource (Resource r) throws SystemException, Inactive;
+	public void registerSubtransactionAwareResource (SubtransactionAwareResource sr)
+	throws SystemException, NotSubtransaction;
+	public void registerSynchronization (Synchronization s) throws SystemException,
+	Inactive;
+};
+</screen>
+    </section>
+</appendix>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Appendix_B.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,27 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo>
+	<title>JBoss TS Programmers Guide</title>
+	<subtitle>JBoss Enterprise SOA Platform</subtitle>
+	<issuenum>1.0</issuenum>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is the SOA Platform edition of the JBoss TS Programmers
+Guide</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/redhat-logo.svg" />
+			</imageobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+<!--	<xi:include href="Common_Content/Boilerplate.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Book_Info.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_05.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_05.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_05.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,431 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Tools</title>
+    
+    <section>
+        <title>Introduction</title>
+    
+        <para>This chapter explains how to start and use the tools framework and what tools are available.</para>
+    
+    </section>
+    
+    <section>
+        <title>Starting the Transaction Service tools</title>
+        
+        <para>The way to start the transaction service tools differs on the operating system being used:</para>
+        
+        <formalpara>
+            <title>Windows</title>
+            
+            <para>Double click on the ‘Start Tools’ link in the JBoss Transaction Service program group in the start menu.</para>
+        </formalpara>
+        
+        <formalpara>
+            <title>Unix</title>
+            
+            <para>
+                Start a bash shell and type:
+                </para>
+        </formalpara>
+        
+        <programlisting>cd &lt;JBossTS INSTALL DIRECTORY&gt;
+./run-tools.sh</programlisting>
+    
+        <para>Once you have done this the tools window will appear. This is the launch area for all of the tools shipped with the <emphasis>JBoss Transaction Service</emphasis>.  At the top of the window you will notice a menu bar. This menu bar has four items:</para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>File</guimenu></menuchoice> Menu</title>
+            
+            <para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Open JMX Browser</term>
+                        <listitem><para>This displays the JMX browser window (see ***Using the JMX Browser for more information on how to use the JMX browser).</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Open Object Store Browser </term>
+                        <listitem><para>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).</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Settings</term>
+                        <listitem><para>This option opens the settings dialog which lets you configure the different tools available.</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry><term>Exit</term>
+                        <listitem><para>This closes the tools window and exits the application, any unsaved/unconfirmed changes will be lost.</para></listitem></varlistentry>
+                    
+                    
+                </variablelist>
+                
+            </para>
+        </formalpara>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu</title>
+            <para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Open</term>
+                        <listitem><para>This opens a performance window – see <xref linkend="Performance_Tool"/> for more information on the performance tool.</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Close All</term>
+                        <listitem><para>this closes all of the currently open performance windows – see <xref linkend="Performance_Tool"/> for more information on the performance tool.</para></listitem>
+                    </varlistentry>
+                    
+                </variablelist>
+                
+            </para>
+        </formalpara>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu</title>
+            <para><variablelist>
+                <varlistentry>
+                    <term>Cascade Windows</term>
+                    <listitem><para>This arranges the windows in a diagonal line to you find a specific window.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>1. XXXXXXX</term>
+                    <listitem><para>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.</para></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            </para>
+        </formalpara>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu</title>
+            <para><variablelist>
+                <varlistentry>
+                    <term>About</term>
+                    <listitem><para>This displays the about window containing the product information.</para></listitem>
+                </varlistentry>
+            </variablelist>
+            </para>
+        </formalpara>
+        
+        
+        
+    </section>
+    
+    <section id="Performance_Tool">
+        <title>Using the Performance Tool</title>
+        
+        <para>The performance tool can be used to display performance information about 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.</para>
+        
+        <para>The performance information is displayed via a multi-series graph.  To view this graph simply open a performance window by selecting <menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; <menuchoice><guimenuitem>Open</guimenuitem></menuchoice></para>
+	
+	<para>
+		The window now on screen contains a multi-serise graph which can display the following information:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Number of transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of committed transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of aborted transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of nested transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of heuristics raised.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		To turn these series on and off simply select the menu option from the series menu. 
+	</para>
+	<para>
+		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.
+	</para>
+	<para>
+		The data shown is graphed against time. The Y-axis represents the number of transactions and the X-axis represents time.
+	</para>
+	<para>
+		At any point the sampling of data can be stopped and restarted using the <menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data currently visible in the graph can be saved to a Comma Separate Values  (CSV) 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.
+	</para>
+    </section>
+    <section id="JMX_Browser">
+    	<title>Using the JMX Browser</title>
+	<para>
+		To open the JMX browser window click on the <menuchoice><guimenu>File</guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX Browser</guimenu></menuchoice> option.  The JMX browser window will then be displayed.
+	</para>
+	<para>
+		The window is made up of two main sections:the details panel and the MBean panel. The MBean panel displays the MBeans exposed by the MBean server. These are grouped by domain name.  The details panel displays information 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:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				The total number of MBeans registered on this server.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of constructors exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of attributes exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of operations exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of notifications exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A brief description of the MBean.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which when clicked displays the attributes and operations exposed by this MBean.  From there you can view readable attributes, alter writeable attributes and invoke operations.
+	</para>
+	<section id="Using_Attributes_and_Operations">
+		<title>Using Attributes and Operations</title>
+		<para>
+			When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked the View JMX Attributes and Operations window is displayed.  From here you can view all readable attributes exposed by the selected MBean.  You can also alter writeable attributes.  If an attribute is read-only then you will not be able to alter an attributes value.  To alter an attributes value just double click on the current value and enter the new value.  If the <guibutton>...</guibutton> button is enabled then you can click this to view 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.
+		</para>
+		<para>
+			At any point you can click the <guibutton>Refresh</guibutton> button to 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.
+		</para>
+		<para>
+			You can also invoke operations upon an MBean.  A list of operations exposed by an MBean is displayed below the attributes list.  To invoke an operation simply select it from the list and click the <guibutton>Invoke</guibutton> button.  If the operation requires parameters a further window will be displayed, from this window you must specify values for each of the parameters required.  You specify parameter values in the same way as you 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.
+		</para>
+		<para>
+			Once the method invocation has completed its return value will be displayed.
+		</para>
+	</section>
+	<section id="Using_the_Object_Store_Browser">
+		<title>Using the Object Store Browser</title>
+		<para>
+			To open the Object Store browser window click on the <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.
+		</para>
+		<para>
+			The object store browser window is split into four sections:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Objects – this is a list of icons which represent the objects stored in the selected location.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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).
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	<section id="Object_State_Viewers">
+		<title>Object State Viewers (OSV)</title>
+		<para>
+			When an object is selected in the objects pane of the main window the registered Object State Viewer (or OSV) for that object type is invoked. An OSV’s job is to make information available via the user interface to the user to show information about the selected object. Distributed with the standard tools is an OSV for Atomic Actions, the OSV displays information on the Abstract Records in it’s various lists (e.g. heuristic, failed, read-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.
+		</para>
+		<formalpara>
+			<title>Writing an OSV</title>
+			<para>
+				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:
+			</para>
+		</formalpara>
+		<para>
+		 <code>com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface</code>
+	 	</para>	
+		<para>
+			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:
+		</para>
+<screen>
+public class SimpleRecord extends AbstractRecord
+{
+	private int _value = 0;
+	
+	.....
+	
+	public void increase()
+	{
+		_value++;
+	}
+	
+	public int get()
+	{
+		return _value;
+	}
+	
+	public String type()
+	{
+		return “/StateManager/AbstractRecord/SimpleRecord”;
+	}
+	
+	public boolean restore_state(InputObjectState os, int i)
+	{
+		boolean returnValue = true;
+	
+		try
+		{
+			_value = os.unpackInt();
+		}
+		catch (java.io.IOException e)
+		{
+			returnValue = false;
+		}
+	
+		return returnValue;
+	}
+	
+	public boolean save_state(OutputObjectState os, int i)
+	{
+		boolean returnValue = true;
+	
+		try
+		{
+			os.packInt(_value);
+		}
+		catch (java.io.IOException e)
+		{
+			returnValue = false;
+		}
+	
+		return returnValue;
+	}
+}
+</screen>
+		<para>
+			When this abstract record is viewed in the object store browser it would be nice to see the current value. This is easy to do as we can read the state into an instance of our abstract record and call <methodname><guimenu>getValue()</guimenu></methodname>. The following is the object store browser plug-in source code:
+		</para>
+<screen>
+public class SimpleRecordOSVPlugin implements StateViewerInterface
+{
+	/**
+	* A uid node of the type this viewer is registered against has been expanded.
+	* @param os
+	* @param type
+	* @param manipulator
+	* @param node
+	* @throws ObjectStoreException
+	*/
+	public void uidNodeExpanded(ObjectStore os,
+	String type,
+	ObjectStoreBrowserTreeManipulationInterface 
+	manipulator,
+	UidNode node,
+	StatePanel infoPanel)
+	throws ObjectStoreException
+	{
+		// Do nothing
+	}
+	
+	/**
+	* An entry has been selected of the type this viewer is registered against.
+	*
+	* @param os
+	* @param type
+	* @param uid
+	* @param entry
+	* @param statePanel
+	* @throws ObjectStoreException
+	*/
+	public void entrySelected(ObjectStore os,
+	String type,
+	Uid uid,
+	ObjectStoreViewEntry entry,
+	StatePanel statePanel) 
+	throws ObjectStoreException
+	{
+		SimpleRecord rec = new SimpleRecord();
+	
+		if ( rec.restore_state( os.read_committed(uid, type), ObjectType.ANDPERSISTENT ) )
+		{
+			statePanel.setData( “Value”, rec.getValue() );
+		}
+	}
+	
+	/**
+	* Get the type this state viewer is intended to be registered against.
+	* @return
+	*/
+	public String getType()
+	{
+		return “/StateManager/AbstractRecord/SimpleRecord”;
+	}
+}
+</screen>
+		<para>
+			The method <methodname>uidNodeExpanded</methodname> is invoked when a UID (Unique Identification) representing the given type is expanded in the object store hierarchy tree. This is not required by this plugin as this abstract record is not visible in the object store directly it is only viewable via one of the lists in an atomic action.  The method <methodname>entrySelected</methodname> is invoked when an entry is selected from the object view which represents an object with the given type. In both 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:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>setInfo(String info)</methodname>: This method can be used to show general information.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>enableDetailsButton(DetailsButtonListener listener)</methodname>: This method is used to enable the details button.  The listener interface allows a plug-in to be informed when the button is pressed.  It is up to the plug-in developer to decide how to display this further information.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			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.
+		</para>
+		<para>
+			To add this plug-in to the object store browser it is necessary to package it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. The JAR file must contain certain information within the manifest file so that the object store browser knows which classes are plug-ins.  All of this can be performed using an <ulink url="http://ant.apache.org">Apache ANT</ulink> script, as follows:
+		</para>
+<screen>
+&lt;jar jarfile="osbv-simplerecord.jar"&gt;
+	&lt;fileset dir="build" includes="*.class”/&gt;
+	&lt;manifest&gt;
+		&lt;section name="arjuna-tools-objectstorebrowser"&gt;
+			&lt;attribute name="plugin-classname-1" value=" SimpleRecordOSVPlugin "/&gt;
+		&lt;/section&gt;
+	&lt;/manifest&gt;
+&lt;/jar&gt;
+</screen>
+		<para>
+			Once the JAR has been created with the correct information in the manifest file it just needs to be placed in the <emphasis>bin/tools/plugins</emphasis> directory.
+		</para>
+	</section>
+    </section>
+</chapter>


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_05.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_06.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_06.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_06.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,380 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Constructing a Transactional objects for Java application</title>
+    
+    <section>
+        <title>Application construction</title>
+		<para>
+			There are two distinct phases to the development of a TxCore application:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Developing new classes with certain characteristics (for example, Persistent, Recoverable, Concurrency Controlled).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Developing the application(s) that make use of the new classes of objects.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Although these two phases may be performed in parallel and by a single person, we shall refer to the first step as the job of the class developer and the second as the job of the applications developer. The class developer will be concerned about defining appropriate <code>save_state</code> and <code>restore_state</code> operations for the class, setting appropriate locks in operations, and invoking the appropriate TxCore class constructors. The applications developer will be more concerned with defining the general structure of the application, particularly with regard to the use of atomic actions.
+		</para>
+		<para>
+			This chapter illustrates the points made in previous sections by outlining a simple application: in this case a simple FIFO Queue class for integer values will be developed. The implementation of the Queue will be with a doubly linked list structure, and it will be implemented as a single object. We shall be using this example throughout the rest of this manual to help 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.
+		</para>
+		<para>
+			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.
+		</para>
+		<formalpara>
+			<title>Queue description</title>
+			<para>
+				The queue is a traditional FIFO queue, where elements are added to the front and removed from the back. The operations provided by the queue class allow the values to be placed on to the queue (enqueue) and to be removed from it (dequeue), and it is also possible to change or inspect the values of 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.
+			</para>
+		</formalpara>
+			<para>
+				The Java interface definition of this simple queue class is given below:
+			</para>
+<screen>
+public class TransactionalQueue extends LockManager
+{
+	public TransactionalQueue (Uid uid);
+	public TransactionalQueue ();
+	public void finalize ();
+	
+	public void enqueue (int v) throws OverFlow, UnderFlow,
+	QueueError, Conflict;
+	public int dequeue  () throws OverFlow, UnderFlow,
+	QueueError, Conflict;
+	
+	public int queueSize ();
+	public int inspectValue (int i) throws OverFlow,
+	UnderFlow, QueueError, Conflict;
+	public void setValue (int i, int v) throws OverFlow,
+	UnderFlow, QueueError, Conflict;
+	
+	public boolean save_state (OutputObjectState os, int ObjectType);
+	public boolean restore_state (InputObjectState os, int ObjectType);
+	public String type ();
+	
+	public static final int QUEUE_SIZE = 40; // maximum size of the queue
+	
+	private int[QUEUE_SIZE] elements;
+	private int numberOfElements;
+};			
+</screen>
+		<formalpara>
+			<title>Constructors and deconstructors</title>
+			<para>
+				As stated in the previous section, to use an existing persistent object 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:
+			</para>
+		</formalpara>
+<screen>
+public TransactionalQueue (Uid u)
+{
+	super(u);
+	
+	numberOfElements = 0;
+}		
+</screen>
+			<para>
+				The constructor that creates a new persistent object is similar:
+			</para>
+<screen>
+public TransactionalQueue ()
+{
+	super(ObjectType.ANDPERSISTENT);
+	
+	numberOfElements = 0;
+	
+	try
+	{
+		AtomicAction A = new AtomicAction();
+	
+		A.begin(0);	// Try to start atomic action
+	
+		// Try to set lock
+	
+			if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+			{
+				A.commit(true);	// Commit
+			}
+			else 	// Lock refused so abort the atomic action
+				A.rollback();
+			}
+	catch (Exception e)
+	{
+		System.err.println(“Object construction error: “+e);
+		System.exit(1);
+	}
+}			
+</screen>
+			<para>
+				The use of an atomic action within the constructor for a new object follows the guidelines outlined earlier and ensures that the object’s state will be written to the object store when the appropriate top level atomic action commits (which will either be the action A or some enclosing action active when the <code>TransactionalQueue</code> was constructed). The use of atomic actions in a constructor is simple: an action must first be declared and its begin operation invoked; the operation must then set an appropriate lock on 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.
+			</para>
+			<para>
+				The destructor of the queue class is only required to call the terminate operation of <methodname>LockManager</methodname>
+			</para>
+<screen>
+public void finalize ()
+{
+	super.terminate();
+}
+</screen>
+		</section>
+		<formalpara>
+			<title>save_state, resotre_state and type</title>
+			<para>
+				The implementations of save_state and restore_state are relatively simple for this example:
+			</para>
+		</formalpara>
+<screen>
+public boolean save_state (OutputObjectState os, int ObjectType)
+{
+	if (!super.save_state(os, ObjectType))
+	return false;
+	
+	try
+	{
+		os.packInt(numberOfElements);
+	
+		if (numberOfElements &gt; 0)
+		{
+			for (int i = 0; i &lt; numberOfElements; i++)
+			    os.packInt(elements[i]);
+		}
+			    
+		return true;
+	}
+	catch (IOException e)
+	{
+		return false;
+	}
+}
+
+public boolean restore_state (InputObjectState os, int ObjectType)
+{
+	if (!super.restore_state(os, ObjectType))
+		return false;
+		    
+	try
+	{
+		numberOfElements = os.unpackInt();
+		    
+		if (numberOfElements &gt; 0)
+		{
+			for (int i = 0; i &lt; numberOfElements; i++)
+				    elements[i] = os.unpackInt();
+		}
+		    
+		return true;
+	}
+	catch (IOException e)
+	{
+		return false;
+	}
+}			
+</screen>
+		<para>
+			Because the Queue class is derived from the <classname>LockManager</classname> class, the operation type should be:
+		</para>
+<screen>
+public String type ()
+{
+	return "/StateManager/LockManager/TransactionalQueue";
+}
+</screen>
+		<formalpara>
+			<title>enqueue/dequeue operations</title>
+				<para>
+					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):
+				</para>
+		</formalpara>
+<screen>
+public void enqueue (int v) throws OverFlow, UnderFlow, QueueError
+{
+	AtomicAction A = new AtomicAction();
+	boolean res = false;
+	
+	try
+	{
+		A.begin(0);
+	
+		if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+		{
+			if (numberOfElements &lt; QUEUE_SIZE)
+			       {
+			       		elements[numberOfElements] = v;
+			       		numberOfElements++;
+			       		res = true;
+			       }
+			       else
+			       {
+			       		A.rollback();
+			      		throw new UnderFlow();
+			       }
+		}
+			       
+		if (res)
+			 A.commit(true);
+		else
+		{
+			 A.rollback();
+			       		throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+}
+</screen>
+		<formalpara>
+			<title>queueSize</title>
+			<para>The implementation of <methodname>queueSize</methodname> is shown below:</para>
+		</formalpara>
+<screen>
+public int queueSize () throws QueueError, Conflict
+{
+	AtomicAction A = new AtomicAction();
+	int size = -1;
+	
+	try
+	{
+		A.begin(0);
+	
+		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+			size = numberOfElements;
+	
+		if (size != -1)
+			A.commit(true);
+		else
+		{
+			A.rollback();
+	
+			throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+	
+	return size;
+}
+</screen>
+		<formalpara>
+			<title>inspectValue/setValue operations</title>
+				<para>
+					The implementation of <methodname>inspectValue</methodname> is shown below. <methodname>setValue</methodname> is similar, and not shown.
+				</para>
+		</formalpara>
+<screen>
+public int inspectValue (int index) throws UnderFlow,
+	OverFlow, Conflict, QueueError
+{
+	AtomicAction A = new AtomicAction();
+	boolean res = false;
+	int val = -1;
+	
+	try
+	{
+		A.begin();
+	
+		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+		{
+			if (index &lt; 0)
+		   	 {
+		   		 A.rollback();
+		    		throw new UnderFlow();
+		    	}
+		else
+		{
+		    // array is 0 - numberOfElements -1
+		    
+		    if (index &gt; numberOfElements -1)
+		{
+			A.rollback();
+			throw new OverFlow();
+		}
+		else
+		{
+			val = elements[index];
+			res = true;
+		}
+		}
+		}
+		
+		if (res)
+			A.commit(true);
+		else
+		{
+			A.rollback();
+			throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+		
+	return val;
+}
+</screen>
+		<formalpara>
+			<title>The client</title>
+				<para>
+					Rather than show all of the code for the client, we shall concentrate on a 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.
+				</para>
+		</formalpara>
+<screen>
+public static void main (String[] args)
+{
+TransactionalQueue myQueue = new TransactionalQueue();
+</screen>
+				<para>
+					Before invoking one of the queue’s operations, the client starts a transaction. The <methodname>queueSize</methodname> operation is shown below:
+				</para>
+<screen>
+AtomicAction A = new AtomicAction();
+int size = 0;
+	
+try
+{
+	A.begin(0);
+s
+	try
+	{
+		size = queue.queueSize();
+	}
+	catch (Exception e)
+	{
+	}
+	
+	if (size &gt;= 0)
+	{
+		A.commit(true);
+	
+		System.out.println(“Size of queue: “+size);
+	}
+	else
+		A.rollback();
+}
+catch (Exception e)
+{
+	System.err.println(“Caught unexpected exception!”);
+}
+</screen>
+		<formalpara>
+			<title>Comments</title>
+				<para>
+					Since the queue object is persistent, then the state of the object will survive any failures of the node on which it is located. The state of the object that will survive is that produced by the last top-level committed atomic action performed on the object. If it is the intention of an application to perform two enqueue operations atomically, for example, then this can be done by nesting the enqueue operations in another enclosing atomic action. In addition, concurrent operations on such a persistent object will be serialised, thereby preventing inconsistencies in the state of the object. However, since the elements of the queue objects are not individually concurrency controlled, certain combinations of concurrent operation invocations will be executed serially, whereas logically they 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.
+				</para>
+		</formalpara>
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_06.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_07.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_07.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_07.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,235 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Configuration options</title>
+    
+    <section>
+        <title>Options</title>
+		<para>
+			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.
+		</para>
+		<table>
+			<title>Table 2	TxCore configuration options.</title>
+			<tgroup cols="3">
+				<thead>
+					<row>
+						<entry>
+							Configuration Name
+						</entry>
+						<entry>
+							Possible Values
+						</entry>
+						<entry>
+							Description
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.storeSync
+						</entry>
+						<entry>
+							ON/OFF
+						</entry>
+						<entry>
+							Turns synchronization of the object store on or off. Use with caution.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.storeType
+						</entry>
+						<entry>
+							ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
+						</entry>
+						<entry>
+							Specify the type of object store implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.hashedDirectories
+						</entry>
+						<entry>
+							255/any integer value
+						</entry>
+						<entry>
+							Set the number of directories to hash object states over for the HashedStore object store implementation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.txoj.lockstore.lockStoreType
+						</entry>
+						<entry>
+							BasicLockStore/BasicPersistentLockStore
+						</entry>
+						<entry>
+							Specify the type of the lock store implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.txoj.lockstore.lockStoreDir
+						</entry>
+						<entry>
+							Windows: .\LockStore
+							Unix: ./LockStore
+						</entry>
+						<entry>
+							Specify the location of the lock store.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.objectStoreDir
+						</entry>
+						<entry>
+							Any location the application can write to.
+						</entry>
+						<entry>
+							Specify the location of the object store.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.localOSRoot
+						</entry>
+						<entry>
+							defaultStore
+						</entry>
+						<entry>
+							Specify the name of the object store root.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.actionStore
+						</entry>
+						<entry>
+							ActionStore/HashedActionStore/JDBCActionStore
+						</entry>
+						<entry>
+							The transaction log implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.asyncCommit
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Turns on or off (default) asynchronous commit.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.asyncPrepare
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Turns on or off (default) asynchronous prepare.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.transactionSync
+						</entry>
+						<entry>
+							ON/OFF
+						</entry>
+						<entry>
+							Turns synchronization of the object store on or off. Use with caution.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
+						</entry>
+						<entry>
+							JDBCAccess class name
+						</entry>
+						<entry>
+							The JDBCAccess implementation to use for user-level object stores.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
+						</entry>
+						<entry>
+							JDBCAccess class name
+						</entry>
+						<entry>
+							The JDBCAccess implementation to use for transaction object stores.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.commitOnePhase
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Enable or disable the one-phase commit optimization.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Enable or disable read-only optimization for the second phase abort.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.enableStatistics
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Start/stop collecting transaction statistic information.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.startDisabled
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.defaultTimeout
+						</entry>
+						<entry>
+							Integer
+						</entry>
+						<entry>
+							Timeout in milliseconds
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+			
+
+		</table>
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/Chapter_07.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3 @@
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+	<xi:include href="Chapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_02.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_03.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_04.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_05.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Chapter_06.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+	<xi:include href="Chapter_07.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Appendix_A.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Appendix_B.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Appendix.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+</book>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/JBoss_TS_Programmers_Guide/en-US/JBoss_TS_Programmers_Guide.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,14 @@
+#Makefile for Red Hat Documentation
+#Created by Jeff Fearn <jfearn at redhat.com>
+#Copyright Red Hat Inc. 2006
+
+XML_LANG	= en-US
+
+BRAND = JBoss
+
+#OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN
+OTHER_LANGS	= ja-JP
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/Makefile
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,702 @@
+# translation of Appendix_A.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 07:07+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Objektspeicher-Implementierungen"
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "Der ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "In diesem Anhang sehen wir uns die verschiedenen Implementierungen des TxCore-Objektspeichers an und liefern Richtlinien dazu, wie andere Implementierungen erstellt und in eine Anwendung eingebunden werden können."
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Diese Release von JBossTS enthält mehrere verschiedene Implementierungen eines grundlegenden Objektspeichers. Jede dient einem bestimmten Zweck und ist hierfür optimiert. Alle Implementierungen sind vom "
+"<interface>ObjectStore</interface>-Interface abgeleitet. Dies definiert die Mindestoperationen, die bereitgestellt werden müssen, damit eine Objektspeicher-Implementierungen von JBossTS verwendet werden kann. Die standardmäßige Objektspeicher-Implementierungen kann durch  Einstellen der <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property>-Propertyvariablen "
+"auf einen der unten beschriebenen Werte zur Runtime außer Kraft gesetzt bzw. ersetzt werden."
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+"JBossTS Programmierer müssen in der Regel nicht direkt mit den Objektspeicher-Implementierungen interagieren außer dass sie sie erstellen (sogar das ist bei Verwendung des Standard-Speichertyps nicht nötig, da JBossTS die Speicher wie nötig erstellt). Alle Speicher manipulieren Instanzen der Klasse <classname>ObjectState</classname>, die mittels eines Typs "
+"(via der type()-Operation des Objekts) und einer Uid benannt werden. Für Zwecke atomischer Aktionen können Objektstati im Speicher zwei verschiedene Stati unterscheiden: "
+"OS_COMMITTED und OS_UNCOMMITTED. Ein Objektstatus beginnt mit dem OS_COMMITTED "
+"Status, aber es kann bei Modifizierung unter Kontrolle einer atomischen Aktion ein zweiter, nämlich der OS_UNCOMMITTED Status geschrieben werden. Wird die Aktion festgeschrieben, so ersetzt dieser zweite Status den ursprünglichen und wird zu OS_COMMITTED. Wird die Aktion abgebrochen, so wird dieser zweite Status einfach verworfen. Alle in dieser Release bereitgestellten Implementierungen handhaben diese Statusänderungen indem sie Schattenkopien der Objektstati verwenden, "
+"jedoch ist jede andere Implementierung, die diese Abstraktion pflegt erlaubt. Unter Kontrolle des Crash Recovery Systems können Objektstati verborgen (\"hidden\") sein (wodurch nicht mehr auf sie zugegriffen werden kann)."
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"Sie können die Inhalte eines Stores mittels der "
+"<methodname>allTypes</methodname> und <methodname>allObjUids</methodname>-Operationen durchsuchen. <methodname>allTypes</methodname> liefert einen "
+"<type>InputObjectState</type> der alle Typennamen aller Objekte in einem Store enthält, terminiert durch einen Null-Namen. <methodname>allObjUids</methodname> liefert einen <type>InputObjectState</type>, der alle Uids aller Objekte eines gegebenen Typs liefert, terminiert durch die Sonder-"
+"<methodname>Uid.nullUid()</methodname>."
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "Persistente Objektspeicher"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "Dieser Abschnitt liefert einen kurzen Überblick über die Charakteristika und Optimierungen jeder der verfügbaren Implementierungen des persistenten Objektspeichers. Persistente Objekt-Stati werden auf die Struktur des Dateisystems gemappt, das durch das Host-Betriebssystem unterstützt wird."
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "Gängige Funktionalität"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "Zusätzlich zu den bereits zuvor erwähnten Features folgen alle gelieferten persistenten Objektspeicher folgenden Regeln:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Jeder Objektstatus wird in seiner eigenen Datei gespeichert, die unter Verwendung der <code>Uid</code> des Objekts benannt wird."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "Der Typ eines Objekts (wie durch die <methodname>type()</methodname>-Operation angegeben) bestimmt das Verzeichnis, in dem das Objekt platziert wird."
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "Alle diese Stores besitzen ein gemeinsames Root-Verzeichnis, das bei der Konfiguration von JBossTS festgelegt wird. Dieser Verzeichnisname wird aller Store-spezifischen Root-Information automatisch vorangestellt."
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Alle Speicher besitzen auch die Idee eines lokalisierten Root-Verzeichnisses, dem zur Bestimmung des endgültigen Objektnamens automatisch der Objekttyp vorangestellt wird. Der lokalisierte Root-Name wird festgelegt, wenn der Speicher erstellt wird. In der Statndardeinstellung lautet der lokalisierte Root-Name <code>defaultStore</code>."
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "Der Schattenspeicher"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr "Dies ist die ursprüngliche Version des Objektspeichers wie sie in vorherigen Releases bereitgestellt wurde und sie wird durch die Klasse <classname>ShadowingStore</classname> implementiert. Es ist einfach aber langsam. Zur Repräsentation des Objekts werden zwei Dateipaare verwendet (die Schattenversion und die festgeschriebene Version) und Dateien werden geöffnet, gesperrt, bearbeitet, entsperrt und geschlossen, jedesmal wenn es zu einer Interaktion mit dem Objektspeicher kommt. Daher können signifikante Mengen an Zeit im System mit dem Öffnen, Schließen und Umbenennen von Dateien verbracht werden, Vorgängen also die alle sehr aufwendig sind."
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>ShadowingStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "Kein Sperren auf Dateiebene"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"Da transaktionale Objekte durch "
+"<methodname>LockManager</methodname> Nebenläufigkeitskontrolle unterliegen, ist es nicht notwendig auf Dateiebene weitere Sperren hinzuzufügen, da die grundlegende Implementierung des ShadowingStore "
+"diesen Zweck erfüllt. Die standardmäßige Objektspeicherimplementierung für JBossTS, <methodname>ShadowNoFileLockStore</methodname> hängt daher vom Sperren auf Benutzerebene ab. Dies führt zu einer besseren Performance als dies bei der "
+"<methodname>ShadowingStore</methodname>-Implementierung der Fall ist."
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>ShadowNoFileLockStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "Der \"gehashte\" Speicher"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "Der <code>HashedStore</code> besitzt dieselbe Struktur für Objektstati wie die Schattenspeicher, besitzt jedoch eine alternative Verzeichnisstruktur, die besser dafür geeignet ist, große Mengen an Objekten deselben Typs zu speichern. Bei der Verwendung sind gespeicherte Objekte auf einem Satz von Verzeichnisses verteilt durch Anwendung einer Hashing-Funktion zur Uid des Objekts. Standardmäßig werden 255 Unterverzeichnisse verwendet. Dies lässt sich jedoch durch Einstellen der <code>HASHED_DIRECTORIES</code>-Umgebungsvariablen entsprechend außer Kraft setzen."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>HashedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"Da transaktionale Objekte durch "
+"<methodname>LockManager</methodname> Nebenläufigkeitskontrolle unterliegen, ist es nicht notwendig auf Dateiebene weitere Sperren hinzuzufügen, da die grundlegende Implementierung des ShadowingStore "
+"diesen Zweck erfüllt. Die standardmäßige Objektspeicher-Implementierung für JBossTS, <methodname>ShadowNoFileLockStore</methodname> hängt daher vom Sperren auf Benutzerebene ab. Dies führt zu einer besseren Performance als dies bei der "
+"<methodname>ShadowingStore</methodname>-Implementierung der Fall ist."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "Der <code>HashedStore</code> besitzt dieselbe Struktur für Objektstati wie die Schattenspeicher, besitzt jedoch eine alternative Verzeichnisstruktur, die besser dafür geeignet ist, große Mengen an Objekten deselben Typs zu speichern. Bei der Verwendung sind gespeicherte Objekte auf einem Satz von Verzeichnisses verteilt durch Anwendung einer Hashing-Funktion zur Uid des Objekts. Standardmäßig werden 255 Unterverzeichnisse verwendet. Dies lässt sich jedoch durch Einstellen der <code>HASHED_DIRECTORIES</code>-Umgebungsvariablen entsprechend außer Kraft setzen."
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "Der JDBC-Store"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 "Der <methodname>JDBCStore</methodname> verwendet eine JDBC-Datenbank zur Speicherung persistenter Objektstati; wenn zusammen mit den transaktionalen Objekten für Java API verwendet, ist Support für verschachtelte Transaktionen verfügbar. Bei der aktuellen Implementierung werden alle Objektstati als \"Binary Large Objects\" (BLOBs) innerhalb derselben Tabelle gespeichert. Die durch BLOBs vorgegebene Größe für den Objektstatus beträgt 64k; beim Versuch einen Objektstatus zu speichern, der diese Größe überschreitet, wird ein Fehler gemeldet und der Status nicht gespeichert. Anschließend wird das Zurücksetzen der Transaktion erzwungen."
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"Wird der JDBC-Objektspeicher verwendet, so muss die Anwendung eine Implementierung des folgenden Interface liefern, das sich im <code>com.arjuna."
+"ats.arjuna.objectstore</code>-Paket befindet:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 ""
+"Die Implementierung dieser Klasse ist verantwortlich dafür, dass die "
+"<emphasis>Verbindung</emphasis> bereitgestellt wird, die der JDBC ObjectStore zur Speicherung und Wiederherstellung von Objekt-Stati verwenden wird:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<methodname>getConnection</methodname>: liefert die zu verwendende Verbindung. Diese Methode wird aufgerufen, wenn eine Verbindung benötigt wird und die Implementierung die notwendige Richtlinie zur Bestimmung welche Verbindung wiedergegeben werden soll verwenden soll. Diese Methode muss nicht mehr als einmal dieselbe Verbindungsinstanz wiedergeben."
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: diese Methode wird aufgerufen, um eine der durch getConnection erhaltenen Verbindungen wiederzugeben. Verbindungen werden wiedergegeben, wenn bei deren Verwendung Fehler auftreten."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: kann zur Weitergabe zusätzlicher arbiträrer Informationen an die Implementierung verwendet werden."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"Der JDBC-Objektspeicher wird anfangs die Anzahl der in der <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property>-Property definierten Verbindungen anfragen und wird nicht mehr als in der <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>-Property festgelegt verwenden."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+"Die Implementierung des zu verwendenden <interfacename>JDBCAccess</interfacename>-Interface sollte in der <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>-Property-Variablen eingestellt werden."
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>JDBCStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"Ein JDBC Object Store kann zum managen des Transaktionsprotokolls verwendet werden. In diesem Fall sollte die Implementierung des Transaktionsprotokolls auf <property>JDBCActionStore</property> eingestellt sein und die <methodname>JDBCAccess</"
+"methodname>-Implementierung muss über die <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>-Property-Variable geliefert werden. In diesem Fall lautet der Standard-Tabellenname JBossTSTxTable."
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "Es ist möglich diesselbe JDBCAccess-Implementierung sowohl für den Benutzer-Objektspeicher als auch das Transaktionsprotokoll zu verwenden."
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "Der \"gecachte\" Speicher"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 ""
+"Dieser Objektspeicher wird im \"gehashten\" Objektspeicher verwendet, schreibt und liest Stati aber nicht sofort in den persistenten Sicherheitsspeicher (\"backing Store\"). Die Stati bleiben in einem "
+"selbstlöschenden Speicher-Cache, das entweder periodisch oder wenn voll bereinigt wird. Die mit diesem Objektspeicher assoziierte Fehlfunktionssemantik unterscheidet sich von normalen Objektspeichern, da eine Fehlfunktion zu einem Verlust der Stati im Cache führen kann."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>CachedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "Der Store kann mit den folgenden Properties konfiguriert werden:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> setzt die Anzahl interner Speicher, zu denen die Stati gecacht werden sollen. Der Standardwert beträgt 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> ist die maximale Größe, die das Cache erreichen kann, ehe eine Bereinigung ausgelöst wird. Der Standard sind 10240 Bytes."
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> ist die maximale Anzahl entfernter Posten, die das Cache enthalten kann, ehe eine Bereinigung ausgelöst wird. Standardmäßig werden Aufrufe zur Entfernung eines Status in diesem Cache entweder den Status aus dem Cache entfernen, aber eine leere Stelle hinterlassen (statt den Eintrag sofort zu entfernen, was die Performance des Cache beeinflussen würde). Wenn ausgelöst, werden diese Einträge aus dem Cache entfernt. Der Standardwert beträgt das Doppelte des \"Hash\"."
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> ist die maximale Postenzahl auf die das Cache anwachsen darf, ehe eine Bereinigung stattfindet. Der Standardwert ist 100."
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> setzt die Zeit in Millisekunden für die periodische Bereinigung des Caches. Der Standardwert beträgt 120 Sekunden."
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> legt fest, ob Bereinigungen des Cache mit der Disk synchronisiert werden. Die Standardeinstellung lautet OFF. Um dies zu aktivieren setzen Sie diese Einstellung auf ON."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# translation of Appendix_B.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 07:09+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "Klassendefinitionen"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "Dieser Anhang enthält eine Übersicht derjenigen Klassen, die der Anwendungsprogrammierer in der Regel benutzt. Ziel dieses Anhangs ist es, ein schnell zu überblickendes Referenzhandbuch für diese Klassen beim Schreiben von Anwendungen in TxCore zu liefern. Zur besseren Klarheit werden nur die öffentlichen und geschützten Interfaces der Klassen angegeben."
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "Klassenbibliothek"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Sperr-Manager"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-05 10:05+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat Dokumentationsgruppe"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# translation of Book_Info.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-29 09:34+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "JBoss TS Handbuch für Programmierer"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "JBoss Enterprise SOA Plattform"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr ""
+"Dieses Buch ist die Enterprise Application Platform Edition des JBoss TS "
+"Handbuchs für Programmierer"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1014 @@
+# translation of Chapter.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-28 20:01+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "Übersicht"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"Dieses Kapitel enthält eine Beschreibung der Verwendung der <classname>TxCore</classname> Transaction-Engine und der <firstterm>Transactional Objects for "
+"Java</firstterm> Klassen und Facilities. Die in diesem Kapitel erwähnten Klassen sind der Schlüssel zum Schreiben von fehlertoleranten Anwednugen unter Verwendung von Transkationen. Daher wollen wir sie nachdem wir sie beschrieben haben bei der Erstellung einer einfachen Applikation anwenden. Die in diesem Kapitel beschriebenen Klassen "
+"finden Sie in den <classname>com.arjuna.ats.txoj</classname> und "
+"<classname>com.arjuna.ats.arjuna</classname> Paketen."
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – die Transaction-Engine"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr "Bei der objektorientierten Ansicht mussten die zur Konstruktion zuverlässiger distribuierter Anwendungen nötigen Mechanismen dem Programmierer auf objektorientierte Weise präsentiert werden. Einige Mechanismen müssen vererbt werden, so etwa Nebenläufigkeitskontrolle und Status-Management; andere Mechanismen wie Objektspeicherung und Transaktionen werden als <classname>TxCore</classname>-Objekte implementiert und wie jedes andere Objekt erstellt und manipuliert."
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"Wenn im Handbuch die Rede von der Verwendung von \"Facilities\" zur Persistenz und Nebenläufigkeitskontrolle ist, so wird von der Verwendung der Klassen von <emphasis>Transaktionalen Objekten für Java</"
+"emphasis> (TXOJ) ausgegangen. Ist dies nicht der Fall, so ist der Programmierer für alle diese Aspekte verantwortlich."
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "<classname>TxCore</classname> nutzt objektorientierte Techniken, um Programmierern ein Toolkit von Java-Klassen zu bieten, von dem Anwendungsklassen erben können um gewünschte Properties zu erhalten, wie etwa Persistenz und Nebenläufigkeitskontrolle. Diese Klassen bilden eine Hierarchie von der ein Teil unten dargestellt ist und später in diesem Dokument beschrieben wird."
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Txcore-Klassenhierarchie"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+"Abgesehen vom Festlegen der Bereiche der Transaktionen und des Setzens entsprechender Sperren innerhalb von Objekten, hat der Programmierer keine weiteren Verantwortlichkeiten: <classname>TxCore</classname> und <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) stellen sicher, dass transaktionale Objekte bei den entsprechenden Transaktionen registriert und durch diese betrieben werden und dass Crash-Recovery Mechanismen bei Fehlfunktionen automatisch aufgerufen werden."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Objekt-Stati speichern"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"<classname>TxCore</classname> muss aus verschiedenen Gründen dazu in der Lage sein, sich an den Status eines Objekts - darunter auch Recovery (der Status repräsentiert einen vergangenen Status des Objekts) und Persistenz (der Status repräsentiert den endgültigen Status eines Objekts zum Zeitpunkt der Beendigung der Anwendung) - zu erinnern. Da diese Anforderungen gemeinsame Funktionalitäten besitzen, werden sie alle unter Verwendung desselben Mechanismus implementiert: die Klassen <classname>InputObjectState</classname> und <classname>OutputObjectState</classname>. Die Klassen warten ein internes Array, in das unter Verwendung der entsprechenden <command>pack</command> (<command>unpack</"
+"command>) Operationen durchgängig Instanzen des Standard-Typs gepackt (entpackt) werden. Die Größe dieses Zwischenspeichers wird automatisch und wie erforderlich angepasst, falls nicht ausreichend Platz verfügbar ist. Sämtliche Instanzen werden in einem Standardformular (die sogenannte \"Network Byte Order\") im Zwischenspeicher gespeichert, damit sie unabhängig von der verwendeten Maschine sind. Jedes andere architekturunabhängige Format (wie XDR "
+"oder ASN.1) könnte einfach implementiert werden, indem die Operationen durch die der benötigten Codierung entsprechende ersetzt werden."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "Der Objektspeicher (\"Object Store\")"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 ""
+"Implementierungen von Persistenz können von durch den Java SecurityManager gemachten Einschränkungen betroffen sein. Der mit "
+"<classname>TxCore</classname> gelieferte Objektspeicher (\"Object Store\") ist daher unter Verwendung von Techniken von Interface/Implementierung implementiert. Die aktuelle Distribution besitzt Implementierungen, die Objekt-Stati in das lokale Dateisystem oder Datenbank schreiben und Remote-Implementierungen, bei denen das Interface einen Client-Stub (Proxy) bei Remote-Diensten verwendet."
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "Persistenten Objekten werden eindeutige Bezeichner zugewiesen (Instanzen der Uid-Klasse), wenn sie erstellt werden und dies wird verwendet, um sie innerhalb des Object Store zu identifizieren. Stati werden unter Verwendung der <literal>read_committed</literal>-Operation gelesen und mittels <literal>write_(un)committed</literal>-Operationen geschrieben."
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "Wiederherstellung (\"Recovery) und Persistenz"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"Die Root der Klassenhierarchie ist die Klasse <classname>StateManager</"
+"classname>. Diese Klasse ist für Objektaktivierung und -deaktivierung sowie Objekt-Recovery zuständig. Die vereinfachte Signatur der Klasse lautet:"
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "Ein Objekt kann drei verschiedene Formen haben. Es kann einfach wiederherstellbar sein, in welchem Falle der <classname>StateManager</classname> versuchen wird, die entsprechenden Recovery-Informationen für das Objekt zu generieren und zu warten. Die Lebensdauer solcher Objekte überschreitet nicht diejenige des Anwendungsprogramms, das sie erstellt. Objekte können wiederherstellbar und persistent sein, in welchem Fall die Lebensdauer des Objekts als größer als die der erstellenden oder zugreifenden Anwendung angenommen wird, so dass neben der Wartung der Recovery-Informationen der <classname>StateManager</classname> versucht einen eventuell vorhandenen persistenten Status für das Objekt durch Aufruf der \"activate\" (\"deactivate\") Operation zu entsprechenden Zeiten automatisch zu laden (löschen). Zu guter letzt kann das Objekt auch keine dieser Fähigkeiten besitzen, in welchem Fall keine Recovery-Informationen aufbewahrt werden und die Objektaktivierung bz!
 w. -deaktivierung nie automatisch versucht wird. "
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Ist ein Objekt wiederherstellbar oder wiederherstellbar und persistent so ruft <classname>StateManager</classname> die Operationen "
+"<command>save_state</command> (während der Durchführung von <command>deactivate</command>) und <command>restore_state</command> (während der Durchführung von activate) an verschiedenen Punkten während der Ausführung der Anwendung auf. Diese Operationen müssen vom Programmierer "
+"implementiert werden, da <classname>StateManager</"
+"classname> Statusänderungen auf Benutzerebene nicht aufspüren kann. (Wir prüfen die automatische Generierung von standardmäßigen <command>save_state</command> und "
+"<command>restore_state</command> Operationen, die es dem Programmierer erlauben, dies außer Kraft zu setzen, wenn anwendungsspezifisches Wissen eingesetzt werden kann, um die Effizienz zu erhöhen). Dies verleiht dem Programmierer die Möglichkeit zu entscheiden, welche Teile des Status eines Objekts persistent gemacht werden sollten. Für eine Tabellenkalkulation ist es möglicherweise nicht notwendig alle Einträge zu speichern, wenn einige der Werte einfach erneut berechnet werden können. Die <command>save_state</command>-Implementierung für eine Klasse "
+"<classname>Example</classname>, die ganzzahlige Teilvariablen namens A, B und C besitzt, könnte einfach wie folgt lauten:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+"Ein Objekt kann drei verschiedene Formen haben. Es kann einfach <emphasis>wiederherstellbar</emphasis> sein, in welchem Falle der <classname>StateManager</classname> versuchen wird, die entsprechenden Recovery-Informationen für das Objekt zu generieren und zu warten. Die Lebensdauer solcher Objekte überschreitet nicht diejenige des Anwendungsprogramms, das sie erstellt. Objekte können <emphasis>wiederherstellbar und persistent</emphasis> sein, in welchem Fall die Lebensdauer des Objekts als größer als die der erstellenden oder zugreifenden Anwendung angenommen wird, so dass neben der Wartung der Recovery-Informationen der <classname>StateManager</classname> versucht einen eventuell vorhandenen persistenten Status für das Objekt durch Aufruf der <classname>activate</classname> (<classname>deactivate</"
+"classname>) Operation zu entsprechenden Zeiten automatisch zu laden (löschen). Zu guter letzt kann das Objekt auch keine dieser Fähigkeiten besitzen, in welchem Fall keine Recovery-Informationen aufbewahrt werden und die Objektaktivierung bzw. -deaktivierung nie automatisch versucht wird."
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Ist ein Objekt <emphasis>wiederherstellbar</emphasis> (recoverable) oder <emphasis>wiederherstellbar und persistent</emphasis> so ruft der <classname>StateManager</classname> die Operationen <command>save_state</command> (während "
+"<command>deactivate</command> durchgeführt wird) und <command>restore_state</command> (während <command>activate</command> durchgeführt wird) an verschiedenen Punkten während der Ausführung der Anwendung auf. Diese Operationen müssen durch den Programmierer implementiert werden, das der <classname>StateManager</classname> Statusänderungen auf Benutzerebene nicht auffinden kann. (Wir prüfen die automatische Generierung von Standard <classname>save_state</classname> und <classname>restore_state</classname> Operationen, die es dem Programmierer gestatten, dies außer Kraft zu setzen, wenn applikationsspezifisches Wissen zur Verbesserung der Effizienz eingesetzt werden kann). Dies gibt dem Programmierer die Möglichkeit zu entscheiden, welche Teile des Status eines Objekts persistent gemacht werden sollten. Für eine Tabellenkalkulation etwa ist es vielleicht nicht notwendig alle Einträge zu speichern, wenn bestimmte Werte einfach erneut berechnet werden können. Die !
 <classname>save_state</classname>-Implementierung für eine Klasse "
+"<classname>Example</classname>, die ganzzahlige Teilvariablen namens A, B und C besitzt, könnte einfach wie folgt lauten:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"Es ist für alle <command>save_state</command> und "
+"<command>restore_state</command>-Methoden notwendig, <classname>super.save_state "
+"</classname>und <classname>super.restore_state</classname> aufzurufen. Dadurch sollen Crash-Recovery-Mechanismen unterstützt werden."
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "Der Lebenszyklus eines transaktionalen Objekts für Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"Man geht davon aus, dass ein nicht in Gebrauch befindliches persistentes Objekt in einem <emphasis>passiven</emphasis>-Status gehalten wird, wobei dessen Status sich in einem Objektspeicher befindet und auf Abruf <emphasis>aktiviert</emphasis> wird. Der fundamentale Lebenszyklus eines persistenten Objekts in <emphasis>TXOJ</emphasis> ist in <xref linkend="
+"\"figure_2\"/> dargestellt."
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "Der Lebenszyklus eines persistenten Objekts."
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "Das Objekt ist ursprünglich passiv und wird als eine Instanz der Klasse <classname>OutputObjectState</classname> im Objektspeicher gespeichert."
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr "Wenn durch eine Anwendung erforderlich, wird das Objekt automatisch aktiviert, indem es durch einen <command>read_committed</command>-Vorgang aus dem Speicher gelesen und dann durch den <command>restore_state</command>-Vorgang von einer <classname>InputObjectState</classname>-Instanz in ein vollwertiges Objekt konvertiert wird."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 ""
+"Ist die Anwendung mit dem Objekt fertig, so wird dieses durch Rückkonvertierung in eine <classname>OutputObjectState</classname>-Instanz "
+"mittels der <command>save_state</command>-Operation deaktiviert, und wird dann mittels write_uncommitted als \"Schattenkopie\" "
+"in den Objektspeicher gespeichert. Diese Schattenkopie kann festgeschrieben werden, in dem die vorangegangene Version mittels "
+"<command>commit_state</command>-Operation festgeschrieben wird. Die Existenz von Schattenkopien wird normalerweise durch das Transaktionssystem vor dem Programmierer verborgen. Objekt-Deaktivierung erfolgt normalerweise nur dann, wenn die Transaktion der höchsten Ebene, innerhalb derer das Objekt aktiviert wurde, festgeschrieben wird."
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "Während seiner Lebensdauer kann ein persistentes Objekt viele Male aktiv und wieder passiv gemacht werden."
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "Der Nebenläufigkeits-Controller"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr ""
+"Der Nebenläufigkeits-Controller wird durch die Klasse "
+"<classname>LockManager</classname> implementiert, die ein vernünftiges Standardverhalten liefert und dem Programmierer gleichzeitig gestattet dieses außer Kraft zu setzen, falls es aufgrund der bestimmten Semantik der programmierten Klasse erforderlich sein sollte. Wie mit <classname>StateManager</classname> und Persistenz, wird auch auf die Implementierungen der Nebenläufigkeitssteuerung über Interfaces zugegriffen. Neben Zugriff auf Remote-Dienste beinhalten die aktuellen Implementierungen von für Interfaces verfügbare Nebenläufigkeitssteuerung:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "lokale Disk/Datenbank Implementierung, bei der Sperren persistent gemacht werden, indem sie in das lokale Datensystem oder die Datenbank geschrieben werden."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "eine rein lokale Implementierung, bei der Sperren innerhalb des Speichers der sie erstellenden virtuellen Maschine gewartet werden; diese Implemetierung bietet eine bessere Performance als wenn Sperren auf die lokale Disk geschrieben werden, aber Objekte können nicht zwischen virtuellen Maschinen geteilt werden. Wichtig ist, dass es sich um ein einfaches Java-Objekt handelt ohne durch den SecurityManager beeinflussbare Anforderungen"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "Das primäre Programmierer-Interface zum Nebenläufigkeitskontroller ist über die \"setlock\"-Operation. Standardmäßig erzwingt das Runtime-System strikte zwei-Phasen Sperren nach einer \"multiplen Reader\", \"single Writer\" Richtlinie auf pro Objekt Basis. Wie jedoch in <xref linkend=\"figure_1\"/> gezeigt ist es für Programmierer durch Vererbung von der <classname>Lock</classname>-Klasse möglich, ihre eigene Sperrimplementierung mit anderen Sperrkonfliktregeln bereitzustellen, um die <firstterm>type specific concurrency control</firstterm> zu aktivieren."
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "Sperrerwerb ist (notwendigerweise) unter Programmiererkontrolle, da ebenso wie <classname>StateManager</classname> nicht bestimmen kann ob eine Operation ein Objekt verändert <classname>LockManager</classname> nicht bestimmen kann, ob eine Operation eine Lese- oder Schreibsperre benötigt. Die Freigabe der Sperre (Lock Release) jedoch ist unter Kontrolle des Systems und erfordert kein weiteres Eingreifen durch den Programmierer. Dies stellt sicher, dass die zwei-Phasen Property ordnungsgemäß gewartet werden kann."
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"Die <classname>LockManager</classname>-Klasse ist primär verantwortlich für die Verwaltung von Anfragen zum Setzen"
+"einer Sperre oder dem Lösen einer Sperre an einem Objekt . Da sie jedoch vom <classname>StateManager</classname> abgeleitet ist, kann sie außerdem steuern, wo einige der vererbten Facilities aufgerufen werden. Zum Beispiel geht <classname>LockManager</classname> davon aus, dass das Setzen einer Schreibsperre voraussetzt, dass die aufrufende Operation im Begriff ist das Objekt zu modifizieren. Dies wiederum kann dazu führen, dass Recovery-Information gespeichert werden, falls es sich um ein wiederherstellbares Objekt handelt. Auf ähnliche Weise führt der erfolgreiche Erwerb einer Sperre dazu, dass \"activate\" aufgerufen wird."
+
+#. 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 "Der Code unten zeigt, wie wir versuchen können, eine Sperre an einem Objekt zu erhalten:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Die Transaktionsprotokoll-Engine (\"Transaction Protocol Engine\")"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 ""
+"Die Transaktionsprotokoll-Engine wird durch die "
+"<classname>AtomicAction</classname>-Klasse repräsentiert, die den "
+"<classname>StateManager</classname> verwendet, um ausreichende Informationen für Crash-Recovery Mechanismen zu speichern, um die Transaktion im Falle von Fehlfunktionen zu beenden. Sie besitzt Methoden zum Starten und Beenden der Transaktion sowie - für jene Situationen, in denen Programmierer ihre eigenen Ressourcen implementieren müssen - Methoden, um diese bei der aktuellen Transaktion zu registrieren. Da <emphasis>TxCore</emphasis> Sub-Transaktionen unterstützt, ist eine innerhalb einer bereits vorhandenen Transaktion begonnene Transaktion automatisch verschachtelt."
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "<emphasis>TxCore</emphasis> ist multipler Threads gewahr und erlaubt jedem Thread innerhalb einer Anwendung eine Transaktion zu teilen oder innerhalb seiner eigenen Transaktion auszuführen. Daher sind alle <emphasis>TxCore</emphasis>-Klassen auch Thread-sicher."
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "Das einfache Beispiel unten illustriert die Beziehungen zwischen Aktivierung (activation), Terminierung (termination) und Festschreibung (commitment):"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "Die Ausführung des obigen Codes beinhaltet die folgende Sequenz von Aktivitäten:"
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"Das Erstellen von Bindings zu persistenten Objekten; dies könnte die Erstellung von Stub-Objekten sowie einen Aufruf an Remote-Objekte beinhalten. Im Beispiel oben an ein bestehendes, durch <literal>Name-A</"
+"literal> identifiziertes Objekt und ein neues persistentes Objekt ein erneutes Binding hergestellt wird."
+"Ein Namensgebungssystem für Remote-Objekte wartet das Mapping zwischen Objektnamen und Speicherorten und wird in einem späteren Kapitel beschrieben."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "Start der atomischen Transaktion."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "Aufrufe von Operationen: Als Teil eines bestimmten Aufrufs ist die Objektimplementierung verantwortlich dafür sicherzustellen, dass im Lese- oder Schreibmodus eine Sperre existiert (vorausgesetzt es existiert kein Sperrkonflikt) und dass falls nötig eine Initialisierung mit dem letzten festgeschriebenen Status aus dem Objektspeicher stattfindet. Beim erstmaligen Sperrerwerb an einem Objekt innerhalb einer Transaktion wird der Status des Objekts falls möglich aus dem Objektspeicher eingeholt."
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "Festschreiben der Action der höchsten Ebene. Dies beinhaltet die Aktualisierung des Status bearbeiteter Objekte im Objektspeicher."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "Auflösen der zuvor erstellten Bindings."
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "Die Klassenhierarchie"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr "Die wichtigsten Klassen, aus denen die Hierarchieklasse <emphasis>TxCore</emphasis> besteht, sind unten abgebildet."
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"Programmierer fehlertoleranter Anwendungen werden in erster Linie mit den Klassen <classname>LockManager</classname>, <classname>Lock</classname> und <classname>AtomicAction</classname> zu tun haben. Andere für Programmierer wichtige Klassen sind <classname>Uid</classname>, und <classname>ObjectState</classname>. Die meisten <emphasis>TxCore</emphasis>-Klassen sind von der Grundklasse <classname>StateManager</classname> abgeleitet, die einfachste Facilities zum managen persistenter und wiederherstellbarer Objekte bereitstellt. Diese beinhalten Support für die Aktivierung und Deaktivierung von Objekten und statusbasierte Objekt-Recovery. Die Klasse <classname>LockManager</classname> verwendet die Facilities von <classname>StateManager</classname> und "
+"<classname>Lock</classname> um die Nebenläufigkeitskontrolle bereitzustellen (zwei-Phasen Sperre in der aktuellen Implemetierung), die für die Implementierung der Serialisierbarkeits-Property von atomischen Aktionen erforderlich ist. Die Implementierung von Facilities von atomischen Aktionen wird durch <classname>AtomicAction</classname> und "
+"<classname>TopLevelTransaction</classname> unterstützt."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr "Die meisten <emphasis>TxCore</emphasis>-Systemklassen sind von der Grundklasse <classname>StateManager</classname> abgeleitet, die einfachste Facilities zum managen persistenter und wiederherstellbarer Objekte bereitstellt. Diese beinhalten Support für die Aktivierung und Deaktivierung von Objekten und statusbasierte Objekt-Recovery. Die Klasse <classname>LockManager</classname> verwendet die Facilities von <classname>StateManager</classname> und liefert die Nebenläufigkeitskontrolle, die für die Implementierung der Serialisierbarkeits-Property von atomischen Aktionen erforderlich ist."
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"Nehmen wir ein einfaches Beispiel. Gehen wir davon aus, dass <classname>Example</classname> eine benutzerdefinierte persistente Klasse ist, entsprechend vom <classname>LockManager</classname> abgeleitet. Eine Anwendung, die eine atomische Transaktion Trans enthält, greift auf ein Objekt (genannt O) von Typ <classname>Example</"
+"classname> durch Aufruf von Operation op1 zu, welches zu Statusänderungen an O führt. "
+"Die Serialisierbarkeits-Property erfordert es, dass eine Schreibsperre an O erworben werden muss, ehe es modifiziert wird; daher sollte der Körper von op1 einen Aufruf an die "
+"<literal>setlock</literal>-Operation des Nebenläufigkeitskontrollers enthalten:"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr "Die durch die <classname>LockManager</classname>-Klasse bereitgestellte <literal>setlock</literal>-Operation, führt in diesem Fall die folgenden Funktionen durch:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Prüfung der Schreibsperrenkompatibilität (\"write lock\") mit aktuell vorhandenen Sperren, und falls erlaubt:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"Rufen Sie das <classname>StateManager</classname>-Operation \"activate\" auf, das den aktuellsten persistenten Status von O aus dem Objektspeicher lädt, falls nicht bereits der Fall. Rufen Sie dann die <classname>StateManager</classname>-Operation \"modified\" auf, die eine Instanz von entweder <classname>RecoveryRecord</classname> oder <classname>PersistenceRecord</classname> für O erstellen, je nachdem, ob O persistent war oder nicht (die Sperre ist eine <literal>WRITE</literal>-Sperre, daher muss der alte Status des Objekt vor der Modifizierung gespeichert werden) und in die "
+"<classname>RecordList</classname> von <classname>Trans</classname> eingefügt werden."
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr "Erstellen und Einfügen einer LockRecord-Instanz in der Trans-RecordList."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"Nehmen wir jetzt an, dass die Aktion <literal>Trans</literal> einige Zeit, nachdem die Sperre erworben wurde, abgebrochen wird. Dann bearbeitet die Zurücksetz-Operation (Rollback) von "
+"<classname>AtomicAction</classname> die mit <literal>Trans</literal> assoziierte<classname>RecordList</classname>-Instanz durch  Aufrufen einer entsprechenden <literal>Abort</literal>-Operation an den verschiedenen Einträgen. Die Implementierung dieser Operation durch die <classname>LockRecord</classname>-Klasse löst die <literal>WRITE</literal>-Sperre, während "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> den vorherigen Status von O wiederherstellt."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""
+"Es ist wichtig, sich dessen bewusst zu sein, dass die oben genannten Arbeiten automatisch von <emphasis>TxCore</emphasis> für den Anwendungsprogrammierer durchgeführt werden. Der Programmierer muss die Transaktion lediglich starten und eine entsprechende Sperre setzen; <emphasis>TxCore</emphasis> und <emphasis>Transactional "
+"Objects for Java</emphasis> kümmern sich um die Teilnehmerregistrierung, Persistenz, Nebenläufigkeitskontrolle und Recovery."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1793 @@
+# translation of Chapter_02.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-28 21:34+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "Verwendung von TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+"In diesem Abschnitt beschreiben wir <emphasis>TxCore</emphasis> und "
+"<emphasis>Transaktionale Objekte für Java</emphasis> ausführlicher und zeigen, wie dies für die Konstruktion transaktionaler Anwendungen verwendet werden kann."
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "Status-Management"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "Objekt-Stati"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"<emphasis>TxCore</emphasis> muss aus verschiedenen Gründen in der Lage sein, sich an den Status eines Objekts zu erinnern, darunter Recovery (der Status repräsentiert einige vergangene Stati des Objekts) und für Persistenz (der Status repräsentiert den letzten Status eines Objekts bei Terminierung der Anwendung). Da alle diese Anforderungen eine gemeinsame Funktionalität benötigen, werden sie "
+"unter Verwendung desselben Mechanismus implementiert - der Klassen <classname>Input/OutputObjectState</classname> "
+"und <classname>Input/OutputBuffer</classname>."
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"Die <classname>Input/OutputBuffer</classname>-Klasse pflegt einen internen Array, in dem Instanzen der Standard-Javatypen mittels der Pack- (Entpack-) Operationen zusammen "
+"gepackt (entpackt) werden können. Die Größe dieses Zwischenspeichers wird automatisch angepasst wie erforderlich, falls kein ausreichender Platz vorhanden sein sollte. Die Instanzen werden alle in einem Standardformular in einem Zwischenspeicher gespeichert (sogenannte \"Network Byte\"-Reihenfolge), um sie rechnerunabhängig zu machen."
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr "Die Klasse <classname>Input/OutputObjectState</classname> liefert die gesamte Funktionalität von <classname>Input/OutputBuffer</classname> (durch Vererbung) aber fügt zwei zusätzliche Instanzvariablen hinzu, die die Uid und den Typ von Objekt für den die <classname>Input/OutputObjectState</classname>-Instanz ein komprimiertes Abbild ist, kennzeichnen. Diese werden beim Zugriff auf den Objektspeicher während Speicherung und Abruf des Objektstatus verwendet."
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "Der Object Store"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "Der mit <emphasis>TxCore</emphasis> gelieferte Objektspeicher besitzt absichtlich ein relativ eingeschränktes Interface, damit er auf vielfältige Weise implementiert werden kann. Die Objektspeicher werden im \"shared Memory\" implementiert; im Unix Dateisystem (in mehreren verschiedenen Formen); und als von Remote aus zugreifbaren Speicher. Vollständigere Informationen zu den in <emphasis>TxCore</emphasis> verfügbaren Objektspeichern finden Sie im Anhang."
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 "Wie mit allen <emphasis>TxCore</emphasis>-Klassen sind die standardmäßigen Objektspeicher reine Java-Implementierungen; um auf das \"shared Memory\" und andere komplexere Objektspeicher-Implementierungen zuzugreifen ist die Verwendung nativer Methoden nötig."
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"Alle Objektspeicher enthalten und rufen Instanzen der Klasse "
+"<classname>Input/OutputObjectState</classname> ab. Diese Instanzen werden durch die Uid und Typ von Objekt, den sie repräsentieren benannt. Stati werden mittels der <command>read_committed</command>-Operation gelesen und vom System mittels <command>write_uncommitted</command>-Operation geschrieben. Unter normaler Operation überschreiben "
+"neue Objekt-Stati alte Objekt-Stati nicht, sondern werden als Schattenkopien geschrieben. Diese Schattenkopien ersetzen die ursprünglichen nur wenn die <command>commit_state</command>-Operation aufgerufen wird. Normalerweise wird sämtliche Interaktion mit dem Objektspeicher durch <emphasis>TxCore</emphasis>-Systemkomponente wie erforderlich durchgeführt, obwohl das Vorhandensein von Schattenversionen von Objekten im Speicher dem Programmierer verborgen bleiben."
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"Wird ein transaktionales Objekt festgeschrieben, so ist es notwendig bestimmte Statusänderungen zu persistieren, damit es im Falle einer Fehlfunktion wiederhergestellt werden kann und dann entweder weiter festgeschrieben oder aber zurückgesetzt werden kann. Bei Verwendung "
+"<emphasis>Transaktionaler Objekte für Java</emphasis>, kümmert sich <emphasis>TxCore</emphasis> automatisch um dies. Um ACID-Properties zu garantieren, müssen diese Statusänderungen in die Persistenzspeicher-Implementierung bereinigt werden, ehe die Transaktion mit der Festschreibung fortfahren kann;"
+"ist dies nicht der Fall, so könnte die Anwendung annehmen, dass die Transaktion festgeschrieben wurde, wenn tatsächlich innerhalb des Betriebssystem-Caches noch Statusänderungen vorhanden sein könnten, die bei einer späteren Fehlfunktion des Rechners verloren gehen könnten. Standardmäßig stellt <emphasis>TxCore</emphasis> sicher, dass solche Statusänderungen bereinigt werden."
+"Allerdings kann dies signifikante Performance-Nachteile bei der Applikation mit sich bringen. Um transaktionale Bereinigungen des Objektstatus zu vermeiden, setzen Sie die "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal>-Variable auf OFF."
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr "Auswahl einer Objektspeicher-Implementierung"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"<emphasis>TxCore</emphasis> wird mit Support für mehrere verschiedene Objektspeicher-Implementierungen geliefert. Der Anhang beschreibt diese Implementierungen, wie eine bestimmte Implementierung auf pro Objekt Basis gewählt und konfiguriert wird (mittels der <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal>-Property-Variablen) und gibt außerdem an, wie zusätzliche Implementierungen geliefert werden können."
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+"Die <emphasis>TxCore</emphasis>-Klasse <classname>StateManager</classname> "
+"managt den Status eines Objekts und liefert alle grundlegenden Support-Mechanismen die von einem Objekt zu Status-Management Zwecken benötigt werden."
+"Der <classname>StateManager</classname> ist verantwortlich für das Erstellen und Registrieren entsprechender Ressourcen, die mit der Persistenz und Wiederherstellung des transaktionalen Objekts zu tun haben. Ist eine Transaktion verschachtelt, so pflanzt der "
+"<classname>StateManager</classname> diese Ressourcen zum Festschreibungszeitpunkt auch zwischen unter- und übergeordneten Transaktionen fort."
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+"Bei Objekten in <emphasis>TxCore</emphasis> wird von drei möglichen Grundtypen ausgegangen. Sie können einfach wiederherstellbar sein, in welchem Fall der "
+"<classname>StateManager</classname> versuchen wird, die entsprechenden Wiederherstellungsinformationen für das Objekt zu generieren und zu warten (wie Instanzen der Klasse "
+"<classname>Input/OutputObjectState</classname>). Die Lebensdauer solcher Objekte überschreitet diejenige des Anwendungsprogramms, das sie erstellt hat, nicht."
+"Objekte können wiederherstellbar und persistent sein, in welchem Fall davon ausgegangen wird, dass die Lebensdauer "
+"höher als die der erstellenden oder zugreifenden Anwendung ist, weswegen außer der Wartung von Wiederherstellungsinformationen der "
+"<classname>StateManager</classname> versuchen wird, einen existierenden persistenten Status für das Objekt durch Aufruf der <command>activate</command> (<command>deactivate</command>) Operation zu entsprechenden Zeiten zu laden (entfernen). Desweiteren können Objekte auch keine dieser Fähigkeiten besitzen, in welchem Fall keine Wiederherstellungsinformationen aufbewahrt werden und auch keine Aktivierungs-/Deaktivierungsversuche automatisch stattfinden. Diese Objekt-Property wird zum Konstruktionszeitpunkt des Objekts gewählt und kann danach nicht mehr geändert werden. Ein Objekt kann daher Wiederherstellungsfähigkeiten nicht zu irgendeinem zufälligen Zeitpunkt während seiner Lebensdauer gewinnen (oder verlieren)."
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+"Ist ein Objekt wiederherstellbar (oder persistent) dann ruft <classname>StateManager</classname> die Operationen <command>save_state</command> (während der Durchführung von <command>deactivation</command>), <command>restore_state</"
+"command> (während der Durchführung von \"activate\") und \"type\" an verschiedenen Punkten der Anwendungsausführung auf. Diese Operationen müssen vom Programmierer implementiert werden, da der <classname>StateManager</classname> keinen Zugriff auf eine Runtime-Beschreibung des Layout eines arbiträren Java-Objekts im Speicher besitzt und daher keine Standardrichtlinie für die Konvertierung der gespeicherten Version in deren passive Form implementieren kann. Die durch <classname>Input/OutputObjectState</classname> bereitgestellten Möglichkeiten jedoch machen diese Vorgehensweisen recht einfach. Die <command>save_state</command>-Implementierung für eine Klasse <classname>Example</classname>, die Teilvariablen namens A, B und C besitzt, könnte einfach wie folgt lauten:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+"Um Crash-Recovery für persistente Objekte zu unterstützen ist es notwendig, dass alle <command>save_state</command> und <command>restore_state</command>-Methoden von Benutzerobjekten <command>super.save_state</command> und "
+"<command>super.restore_state</command> aufrufen."
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "Die Typenmethode wird zur Bestimmung des Speicherorts im Objektspeicher verwendet, an dem der Status von Instanzen dieser Klasse gespeichert und schließlich wiederhergestellt wird. Es kann sich dabei um einen gültigen String handeln. Sie sollten es aber vermeiden, das Rautenzeichen (#) zu verwenden, da dieses für bestimmte Verzeichnisse reserviert ist, die <emphasis>TxCore</emphasis> benötigt."
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr "Die <command>get_uid</command>-Operation von <classname>StateManager</classname> liefert schreibgeschützten (\"read only\") Zugriff auf den internen Systemname eines Objekts für welchen Zweck ihn der Programmierer benötigt (wie die Registrierung des Namens in einem Name-Server). Der Wert des internen Systemnamens kann nur gesetzt werden, wenn das Objekt erstmals erstellt wird - entweder durch Bereitstellen eines expliziten Parameters oder durch Generierung eines neuen Bezeichners wenn das Objekt erstellt wird."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "Die <command>destroy</command>-Methode kann zum Entfernen des Objektstatus aus dem Objektspeicher verwendet werden. Es handelt sich dabei um eine atomische Operation, und daher wird der Status nur entfernt, wenn die Transaktion der höchsten Ebene, innerhalb derer der Aufruf erfolgt, festgeschrieben wird. Der Programmierer muss vor dem Aufruf dieser Operation exklusiven Zugriff auf das Objekt erlangen."
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 ""
+"Da Objektwiederherstellung und Persistenz besitzen komplementäre Voraussetzungen (der einzige Unterschied besteht im Speicherort der Statusinformationen und deren Zweck) kombiniert der <classname>StateManager</classname> effektiv das Management dieser beiden Properties in einen einzelnen Mechanismus. "
+"Das heißt er verwendet Instanzen des Klassen Input/OutputObjectState sowohl zu Wiederherstellungs- als auch zu Persistenzzwecken. Ein zusätzliches an die <command>save_state</command> und <command>restore_state</command> Operationen gegebenes Argument gestattet es dem Programmierer, den Zweck für einen jeweiligen Aufruf zu bestimmen, wodurch unterschiedliche Informationen für Wiederherstellungs- und Persistenzzwecke gespeichert werden."
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "Objektmodelle"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "<emphasis>TxCore</emphasis> unterstützt zwei Modelle für Objekte, die Einfluss auf die Implementierung des Status und der Nebenläufigkeitskontrolle eines Objekts haben, wie wir noch zeigen werden:"
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>: Nur ein einziges Exemplar des Objekts existiert innerhalb der Anwendung; dieses befindet sich innerhalb einer einzelnen JVM, und alle Clients müssen ihre Aufrufe an diesen Server richten. Dieses Modell bietet eine bessere Performance, aber stellt auch einen einzelnen Fehlfunktionspunkt dar, was in einer mehr-threadigen Umgebung das Objekt nicht vor Korrumpierung schützt, wenn ein einzelner Thread fehlschlägt."
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Einzelobjektmodell (Single Object Model)"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE: Logisch existiert eine einzelne Instanz des Objekts, aber Kopien derselben werden über verschiedene JVMs distribuiert; die Performance dieses Modells ist schlechter als beim SINGLE-Modell, aber es bietet bessere Isolation bei Fehlfunktionen."
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Multiples Objektmodell"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"Das Standardmodell ist SINGLE. Der Programmierer kann dies auf einer pro Objekt Basis außer Kraft setzen, indem er eine passende Instanz der <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname>-Klasse bei der Objektkonstruktion bereitstellt."
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "Das Modell kann in jeder nachfolgenden Instantiierung des Objekts geändert werden, d.h. es muss nicht während der gesamten Lebensdauer des Objekts dasselbe bleiben."
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr "Um eine passende <classname>ObjectName</classname>-Klasse bereitzustellen ist es notwendig, folgende Schritte durchzuführen:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "eine neue Instanz von <classname>ObjectName</classname> erstellen."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"das Objekt-Modellattribut mittels <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>-Name einstellen."
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "Zum Beispiel:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Zusammenfassung"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"Zusammendfassend kann man sagen, dass die <emphasis>TxCore</emphasis>-Klasse <classname>StateManager</"
+"classname> den Status eines Objekts managt und alle durch ein Objekt zum Zweck des Status-Management benötigten, grundlegenden Support-Mechanismen liefert. Einige Operationen müssen vom Entwickler der Klasse definiert werden. Diese Operationen sind: "
+"<command>save_state</command>, <command>restore_state</command> und "
+"<command>type</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"Immer dann aufgerufen, wenn der Status eines Objekts für mögliche zukünftige Verwendung gespeichert werden sollte - primär zu Wiederherstellungs- und Persistenzzwecken. Der "
+"<literal>ObjectType</literal>-Parameter gibt den Grund dafür an, warum "
+"<command>save_state</command> durch <emphasis>TxCore</emphasis> aufgerufen wurde. "
+"Dies gestattet es dem Programmierer verschieden Teile von Informationen im "
+"<classname>OutputObjectState</classname> zu speichern bereitgestellt als erster Parameter und in Abhängigkeit davon, ob der Status für Wiederherstellungs- oder Persistenzzwecke benötigt wird. Verweise (Pointers) auf andere <emphasis>TxCore</emphasis>-Objekte könnten einfach als Verweise für Wiederherstellungszwecke gespeichert werden, aber als Uids für Persistenzzwecke. Wie bereits gezeigt liefert die <classname>OutputObjectState</classname>-Klasse praktische Operationen, die das Speichern von Instanzen aller Grundtypen in Java gestatten. Um Crash-Recovery für persistente Objekte zu unterstützen ist es notwendig, dass alle <command>save_state</command>-Methoden <command>super.save_state</command> aufrufen."
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "<command>save_state</command> geht davon aus, dass ein Object intern konsistent ist und alle gespeicherten Variablen feste Werte haben. Es obliegt der Verantwortung des Programmierers sicherzustellen, dass dies auch tatsächlich der Fall ist."
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+"Immer dann aufgerufen, wenn der Status eines Objekts für den bereitgestellten wiederhergestellt werden muss. Wieder gestattet der zweite Parameter unterschiedliche Interpretationen des bereitgestellten Status. Um Crash-Recovery für persistente Objekte bereitzustellen ist es notwendig, dass alle <command>restore_state</command>-Methoden "
+"<command>super.restore_state</command> aufrufen."
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "String Typ ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"Der <emphasis>TxCore</emphasis>-Persistenzmechanismus erfordert einen Weg der Bestimmung des Typs eines Objekte als String damit er den Status des Objekts in/aus dem Object Store speichern/wiederherstellen kann. Der Konvention nach zeigt diese Information die Position der Klasse in der Hierarchie an. Zum Beispiel “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "Sehen Sie sich folgende grundlegende, von der <classname>StateManager</classname>-Klasse abgeleitete <classname>Array</classname>-Klasse an (in diesem Beispiel wird zur Illustrierung des Speicherns und Wiederherstellens des Status eines Objekts die highestIndex-Variable verwendet, um das höchste Element des Array mit nicht-Null Wert im Auge zu behalten):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+"Die <command>save_state</command>, <command>restore_state</command> und "
+"<command>type</command>-Operationen können wie folgt definiert werden:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Sperr-Management und Nebenläufigkeitskontrolle"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+"Nebenläufigkeitskontrollinformationen innerhalb von <emphasis>TxCore</emphasis> werden durch Sperren gewartet. Zwischen Objekten in verschiedenen Prozessen geteilte Sperren können innerhalb eines Sperrspeichers aufbewahrt werden, ähnlich wie in der zuvor vorgestellten Objektspeichereinrichtung. Der mit "
+"<emphasis>TxCore</emphasis> gelieferte Sperrspeicher besitzt mit Absicht ein relativ eingeschränktes Interface, so dass er auf vielfältige Weise implementiert werden kann. Zum Beispiel werden Sperrspeicher im geteilten Speicher implementiert; im Unix-Dateisystem (in mehreren verschiedenen Formen); und als per Remote zugänglicher Speicher. Weitere Informationen zu verfügbaren Objektspeichern in <emphasis>TxCore</emphasis> finden Sie im Anhang (Appendix)."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "Wie bei allen <emphasis>TxCore</emphasis>-Klassen handelt es sich bei den standardmäßigen Sperrspeichern um reine Java-Implementierungen; um auf den freigegebenen Speicher und andere komplexere Sperrspeicher-Implementierungen zuzugreifen, müssen native Methoden verwendet werden."
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Auswahl einer Sperrspeicher-Implementierung (\"lock store\")"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"<emphasis>TxCore</emphasis> bietet Support für mehrere verschiedene Objektspeicher-Implementierungen. Falls das verwendete Objektmodell SINGLE ist, so wird zur Wartung von Sperren kein Sperrspeicher benötigt, da Informationen über das Objekt nicht exportiert werden. Wird jedoch das MULTIPLE-Modell verwendet kann es sein, das verschiedene Run-time Umgebungen (Prozesse, Java Virtual Machines) sich die Nebenläufigkeitskontrollinformationen teilen müssen. Der Implementierungstyp von zu verwendendem Sperrspeicher kann für alle Objekte innerhalb einer bestimmten Ausführungsumgebung mittels <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>-Property Variablen festgelegt werden. Derzeit sind folgende Werte möglich:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "Hierbei handelt es sich um eine Implementierung im Speicher, die nicht standardmäßig die Freigabe gespeicherter Informationen zwischen Ausführungsumgebungen gestattet. Der Anwendungsprogrammierer ist für die Freigabe der gespeicherten Informationen verantwortlich."
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"Dieses ist die Standard-Implementierung und speichert die Sperrinformationen innerhalb des lokalen Dateisystems. Ausführungsumgebungen, die denselben Dateispeicher besitzen können also auch Informationen zur Nebenläufigkeitskontrolle teilen. Root des Dateisystems in das die Sperrinformationen geschrieben werden ist das <filename>LockStore</filename>-Verzeichnis innerhalb des <emphasis>TxCore</emphasis>-Installationsverzeichnisses. Dies kann zur Runtime entsprechend durch Einstellen der <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal>-Propertyvariablen außer Kraft gesetzt werden oder aber durch Platzieren des Speicherorts im <literal>CLASSPATH</literal>:"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>oder</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "Wird keine dieser Vorgehensweisen unternommen, so ist der Standard-Speicherort auf derselben Ebene wie das <filename>etc</filename>-Verzeichnis der Installation."
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+"Der Nebenläufigkeits-Controller wird durch den "
+"<classname>LockManager</classname> implementiert, der ein vernünftiges Standardverhalten liefert und dem Programmierer gleichzeitig gestattet dieses außer Kraft zu setzen, falls durch die bestimmte Semantik der programmierten Klasse erforderlich. Das primäre Programmierer-Interface für den Nebenläufigkeits-Controller ist via der Setlock-Operation. Standardmäßig erzwingt das <emphasis>TxCore</emphasis> Runtime-System strenges zwei-Phasen Sperren nach einem multiplen Reader, \"single writer\" Richtlinie auf einer pro Objekt Basis. Die Sperr-Erfassung obliegt der Kontrolle des Programmierers, da <classname>LockManager</classname> ebenso wenig bestimmen kann, ob eine Operation eine Lese- oder Schreibsperre benötigt, wie der <classname>StateManager</classname> bestimmen kann, ob eine Operation ein Objekt modifiziert. Die \"Lock-Release\" hingegen ist in der Regel unter Kontrolle des Systems und erfordert keine weiteren Maßnahmen seitens des Programmierers. Dies stellt !
 sicher, dass die zwei-Phasen Property korrekt gewartet werden kann."
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"Die <classname>LockManager</classname>-Klasse ist primär dafür verantwortlich Anfragen nach einer Sperreinstellung für ein Objekt oder  dem Lösen einer solchen Sperre zu verwalten. Da sie jedoch vom <classname>StateManager</classname> abgeleitet ist, kann sie außerdem steuern, wann einige der vererbten Einrichtungen aufgerufen werden. Zum Beispiel, wenn eine Anfrage zum Setzen einer Schreibsperre gewährt wird, ruft der "
+"<classname>LockManager</classname> \"modified\" in der direkten Annahme, dass der Aufruf zum Setzen einer Schreibsperre durch die aufrufende Operation bedeutet, dass das Objekt bearbeitet (modifiziert) werden soll. Dies wiederum kann dazu führen, dass Recovery-Informationen gespeichert werden, wenn es sich um ein wiederherstellbares Objekt handelt. Auf ähnliche Weise bewirkt eine erfolgreiche Sperre den Aufruf von <command>activate</command>."
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"Daher ist der <classname>LockManager</classname> direkt verantwortlich für das Aktivieren/Deaktivieren persistenter Objekte und die Registrierung von <classname>Resources</classname> zur Verwaltung der Nebenläufigkeitskontrolle. Durch Steuerung der <classname>StateManager</classname>-Klasse ist er außerdem verantwortlich für das Registrieren von <classname>Resources</classname> für persistente/wiederherstellbare Statusmanipulation und Objekt-Recovery. Der Anwendungsprogrammierer setzt einfach die entsprechenden Sperren, startet und beendet Transaktionen und erweitert die <command>save_state</command> und <command>restore_state</"
+"command>-Methoden von <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "Die <command>setlock</command>-Operation muss mit dem erforderlichen Sperr-Typ (<literal>READ</literal> / <literal>WRITE</literal>) sowie der Anzahl erneuter Versuche die Sperre zu erwerben, ehe aufgegeben wird, parametisiert werden. Erfolgt ein Sperr-Konflikt, so kommt es zu einem der folgenden Szenarios:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"Ist der Wert des Neuversuchs gleich <literal>LockManager.waitTotalTimeout</"
+"literal>, so wird der Thread, der <command>setlock</command> aufgerufen hat, gesperrt, bis die Sperre aufgehoben oder der gesamte festgelegte Timeout vergangen ist, und in welchem <literal>REFUSED</literal> wiedergegeben wird."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr "Falls die Sperre nicht gleich erhalten werden kann, so führt der <classname>LockManager</classname> eine bestimmte Anzahl von Malen Wiederholungsversuche durch, wobei er den festgelegten Zeitwert zwischen den fehlgeschlagenen Versuchen abwartet. Der Standard sind 100 Versuche, wobei jeder Versuch durch eine 0.25 Sekunden Verzögerung getrennt wird; die Zeit zwischen den Wiederholungsversuchen ist in Mikrosekunden festgelegt."
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 ""
+"Falls es zu einem Sperrkonflikt kommt, so führt die aktuelle Implementierung einfach einen Timeout der Sperranfragen durch, wodurch Deadlocks (Blockierungen) vermieden werden, statt dass ein vollständiges Deadlock-Aufspürschema aufgefunden werden müsste. Wird die angeforderte erhalten, so antwortet die \"Setlock\"-Operation mit dem Wert dem Wert <literal>GRANTED< andernfalls mit dem Wert "
+"<literal>REFUSED</literal>. Es obliegt der Verantwortung des Programmierers sicherzustellen, dass der restliche Code für eine Operation nur dann ausgeführt wird, wenn eine Sperranfrage gewährt wird. Nachfolgend sehen Sie Beispiele für die Verwendung der <command>setlock</command>-Operation."
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 ""
+"Der Mechanismus zur Kontrolle der Nebenläufigkeit ist in den atomischen Aktionsmechanismus integriert, wodurch sichergestellt wird, dass die entsprechenden Sperren für ein Objekt gewährt werden, das bei der aktuell laufenden atomischen Aktion registriert ist und wodurch außerdem sichergestellt wird, dass die Sperren zum richtigen Zeitpunkt freigegeben werden. Dies befreit den Programmierer von der Last, explizit innerhalb von atomischen Aktionen erworbene Sperren freigeben zu müssen. Werden Sperren jedoch für ein Objekt "
+"<emphasis>außerhalb</emphasis> des Bereichs einer atomischen Aktion erworben, so obliegt es der Verantwortung des Programmierers diese mittels der entsprechenden <command>releaselock</command>-Operation zu lösen."
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "Sperr-Richtlinien"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"Anders als bei vielen anderen Systemen handelt es sich bei Sperren in <emphasis>TxCore</emphasis> nicht um spezielle Systemtypen. Stattdessen handelt es sich einfach um Instanzen anderer "
+"<emphasis>TxCore</emphasis>-Objekte (die Klasse <classname>Lock</classname>, die ebenfalls vom <classname>StateManager</classname> abgeleitet ist, so dass wenn nötig persistiert werden und auf einfache Weise benannt werden können). Desweiteren besitzt der <classname>LockManager</classname> mit Absicht keine Kenntnisse der Semantik der tatsächlichen Richtlinien entsprechend derer Sperranfragen gewährt werden. Solche Informationen werden durch die Instanzen der tatsächlichen <classname>Lock</classname>-Klasse gewartet, die Operationen bereitstellen (die "
+"<literal>conflictsWith</literal>-Operation) mittels derer der <classname>LockManager</classname> bestimmen kann, ob bei zwei Sperren ein Konflikt existiert oder nicht. Diese Trennung ist wichtig, da sie es dem Programmierer gestattet neue Sperrtypen aus der grundlegenden "
+"<classname>Lock</classname>-Klasse abzuleiten und entsprechende Definitionen der Konflikt-Operationen bereitzustellen, so dass verbesserte Nebenläufigkeitsebenen möglich sind."
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"Die <classname>Lock</classname>-Klasse liefert eine <command>modifiesObject</command>-Operation, die der <classname>LockManager</classname> zur Bestimmung dazu verwendet, "
+"ob die Gewährung dieser Sperranfrage einen Aufruf an \"modified\" erforderlich macht. Diese Operation wird bereitgestellt, damit auch Sperr-Modi, die über einfaches Lesen und Schreiben hinausgehen, unterstützt werden können. Die gelieferte <classname>Lock</classname>-Klasse unterstützt die traditionellen multiplen \"Reader/Single Writer\"-Richtlinien"
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "Objektkonstruktion und -löschung"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "Wie schon erwähnt können <emphasis>TxCore</emphasis>-Objekte wiederherstellbar, wiederherstellbar und persistent oder keines von beidem sein. Zusätzlich besitzt jedes Objekt einen eindeutigen internen Namen. Diese Attribute können nur eingestellt werden, wenn das Objekt konstruiert wird. Der <classname>LockManager</classname> stellt daher zwei geschützte Konstruktoren für die Verwendung durch abgeleitete Klassen bereit, von denen jeder einen ganz bestimmten Zweck erfüllt:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "Dieser Konstruktor gestattet die Erstellung neuer Objekte, das heißt es wird davon ausgegangen, dass kein vorheriger Status existiert."
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+"Wie oben, gestattet dieser Konstruktor das Erstellen eines Objekts, das heißt es wird angenommen, dass kein vorheriger Status existiert. Der <literal>ObjectType</literal>-Parameter "
+"legt fest, ob ein Objekt einfach wiederherstellbar ist (angezeigt durch "
+"<literal>RECOVERABLE</literal>); wiederherstellbar und persistent (angezeigt durch <literal>ANDPERSISTENT</literal>) oder weder noch (<literal>NEITHER</literal>)."
+"Ist ein Objekt als persistent markiert, so wird der Status des Objekts in einem dieser Objektspeicher gespeichert. Der freigegebene Parameter ist nur von Bedeutung, wenn <literal>RECOVERABLE</literal>; ist <literal>attr</literal> nicht Null und das Objektmodell <literal>SINGLE</literal> (das Standardverhalten) dann wird der wiederherstellbare Status des Objekts innerhalb des Objekts selbst gewartet (d.h es besitzt keine externe Repräsentation), andernfalls wird ein \"in-memory\" (selbstlöschender) Objektspeicher zur Speicherung des Objektstatus zwischen atomischen Aktionen verwendet."
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Konstruktoren für neue persistente Objekte sollten atomische Aktionen untereinander verwenden. Dies stellt sicher, dass der Status des Objekts automatisch in den Objektspeicher geschrieben wird wenn die Aktion im Konstruktor festgeschrieben wird oder, falls eine einschließende Aktion vorhanden ist, wenn die entsprechende Aktion der höchsten Ebene festgeschrieben wird. Spätere Beispiele in diesem Kapitel führen dies weiter aus."
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "Dieser Konstruktor gestattet Zugriff auf ein bestehendes persistentes Objekt, dessen interner Name durch den <literal>objUid</literal>-Parameter geliefert wird. Bei mittels dieser Operation konstruierten Objekten wird normalerweise deren vorheriger Status (identifiziert anhand von <literal>objUid</literal>) aus einem Objektspeicher automatisch durch das System geladen."
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 ""
+"Wie oben gestattet der Konstruktor Zugriff auf ein bestehendes persistentes Objekt, dessen interner Name durch den <literal>objUid</literal>-Parameter geliefert wird. "
+"Bei mittels dieser Operation konstruierten Objekten wird normalerweise deren vorheriger Status (identifiziert anhand von <literal>objUid</literal>) aus einem Objektspeicher automatisch durch das System geladen. Ist der attr-Parameter nicht Null und das Objektmodell <literal>SINGLE</literal> (das Standardverhalten), so wird das Objekt beim Start jeder Transaktion der höchsten Ebene nicht reaktiviert."
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "Der Destruktor einer Programmierer-definierten Klasse muss das vererbte Operation \"terminate\" aufrufen, um den Status-Management Mechanismus darüber zu informieren, dass das Objekt im Begriff ist gelöscht zu werden, da andernfalls unvorhersehbare Ergebnisse auftreten können."
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"Da der <classname>StateManager</classname> an den <classname>LockManager</classname> vererbt,"
+"gibt er jede erhaltene "
+"<classname>ObjectName</classname>-Instanz an die <classname>StateManager</classname>-Klasse weiter. Anschließend kann das "
+"<classname>StateManager</classname>-Objektmodell wie zuvor beschrieben eingestellt werden."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,710 @@
+# translation of Chapter_03.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-28 23:01+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "Allgemeines Transaktionsprobleme"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Fortgeschrittene Transaktionsprobleme mit TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "Atomische Aktionen (Transaktionen) können sowohl von Anwendungsprogrammierern als auch Entwicklern von Klassen verwendet werden. Es können daher ganze Operationen (oder Teile von Operationen) atomisch gemacht werden, wie durch die Semantik einer bestimmten Operation erforderlich. Dieses Kapitel beschreibt einige der subtileren Probleme, die bei der Verwendung von Transaktionen im allgemeinen und <emphasis>TxCore</emphasis> im besonderen auftreten können."
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "Prüfen von Transaktionen"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"In einer Anwendung mit mehreren Threads können mehrere Threads während ihrer Lebensdauer mit einer Transaktion assoziiert werden, d.h. die Threads teilen sich den Kontext. Zusätzlich ist es möglich, dass - wenn ein Thread eine Transaktion beendet - andere Threads weiterhin aktiv innerhalb davon sind. In einer distribuierten Umgebung kann es schwierig sein zu garantieren, dass alle Threads mit einer Transaktion fertig sind, wenn diese beendet wird. Standardmäßig gibt <emphasis>TxCore</emphasis> eine Warnung heraus, wenn ein Thread eine Transaktion beendet wenn andere Threads darin noch aktiv sind - allerdings wird die Fortsetzung der Beendigung nichtsdestotrotz erlaubt. Es sind andere Lösungen für dieses Problem möglich, z.B. Sperren des die Transaktion beendenden Threads, bis alle anderen Threads sich vom Transaktionkontext disassoziiert haben. Daher liefert "
+"<emphasis>TxCore</emphasis> die <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname>-Klasse, die es gestattet, die Richtlinien für die Thread-/Transaktionsbeendigung außer Kraft zu setzen. Jede Transaktion hat eine Instanz dieser Klasse mit sich assoziiert und Anwendungsprogrammierer können ihre eigenen Implementierungen auf einer pro-Transaktionsbasis bereitstellen."
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Versucht ein Thread eine Transaktion zu beenden in der sich noch aktive Threads befinden, so ruft das System die Prüfmethode (\"Check Methode\") am <classname>CheckedAction</classname>-Objekt der Transaktion auf. Die Parameter der Prüfmethode lauten:"
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Gibt an, ob die Transaktion im Begriff ist festgeschrieben oder zurückgesetzt zu werden."
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "Der Transaktionsbezeichner."
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "eine Liste aller zum aktuellen Zeitpunkt als aktiv gekennzeichneten Threads innerhalb dieser Transaktion."
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "Wenn \"Check\" antwortet, so wird die Beendigung der Transaktion fortgesetzt. Selbstverständlich kann der Status der Transaktion zu diesem Zeitpunkt sich von dem zum Zeitpunkt des Aufrufs von \"Check\" unterscheiden, z.B. die Transaktion könnte mittlerweile festgeschrieben worden sein."
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "Statistiksammlung"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+"Standardmäßig bewahrt JBossTS keine Informationen zur Historie von Transaktionen. Wird jedoch die <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> Property-Variable auf YES gesetzt, so bewahrt der Transaktionsdienst Informationen zur Anzahl der erstellten Transaktionen und deren Ergebnissen auf. Diese Informationen können während der Ausführung einer transaktionalen Anwendung via der <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>-Klasse abgerufen werden:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Festschreibungsoptimierung der letzten Ressource"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+"In einigen Fällen kann es nötig sein, nicht in zwei-Phasen Festschreibung gewahre Teilnehmer in eine zwei-Phasen Festschreibungstransaktion einzutragen. Ist nur eine einzige Ressource vorhanden, so besteht keine Notwendigkeit für eine zwei-Phasen Festschreibung. Was aber, wenn mehrere Ressourcen in der Transaktion existieren? In diesem Fall kommt die \"Last "
+"Resource Commit\" Optimierung (LRCO) ins Spiel. Es ist möglich, dass eine einzelne Ressource, die ein-Phasen gewahr ist (d.h. kann nur festschreiben oder zurücksetzen, ohne \"prepare\"), in eine Transaktion mit zwei-Phasen Festschreibung gewahren Ressourcen eingetragen zu sein. Der Koordinator behandelt die ein-Phasen gewahre Ressource etwas anders, und zwar insofern als dass es die \"Prepare\"-Phase zuerst an allen anderen Ressourcen ausführt und - falls es die Transaktion dann festschreiben will - er die Kontrolle an die ein-Phasen gewahre Ressource gibt. Wird festgeschrieben, so protokolliert der Koordinator die Festschreibungsentscheidung und versucht die anderen Ressourcen ebenfalls festzuschreiben."
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+"Um das LRCO zu nutzen muss Ihr Teilnehmer das "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname>-Interface "
+"implementieren und durch <command>BasicAction</"
+"command>.add operation bei der Transaktion registriert sein; da diese Operation Instanzen von "
+"<classname>AbstractRecord</classname> erwartet, müssen Sie eine Instanz <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> erstellen und Ihren Teilnehmer als Konstruktorparameter angeben, wie unten gezeigt:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Verschachtelte Transaktionen"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr ""
+"Es gibt keine speziellen Konstrukte für das Verschachteln von Transaktionen: wird eine Aktion begonnen, während eine andere Action läuft, so wird sie automatisch verschachtelt. Dies erlaubt eine modulare Struktur für Anwendungen, wobei Objekte implementiert werden können, indem atomische Aktionen innerhalb ihrer Operationen verwendet werden, ohne dass der Anwendungsprogrammierer sich um die Anwendungen kümmern muss, die diese verwenden, d.h. ob die Anwendungen auch atomische Aktionen verwenden oder ob nicht. "
+"Daher sind Aktionen in manchen Anwendungen auf der obersten Ebene, in anderen hingegen verschachtelt. Auf diese Weise geschriebene Objekte können sogar von Anwendungsprogrammierern geteilt werden und <emphasis>TxCore</emphasis> garantiert Konsistenz."
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "Wird eine verschachtelte Aktion abgebrochen, so wird alle ihre Arbeit rückgängig gemacht, obwohl striktes zwei Phasen Sperren bedeutet, dass alle Sperren, die möglicherweise vorhanden sind, erhalten bleiben bis die Aktion der höchsten Ebene festgeschrieben oder abgebrochen wird. Wird eine verschachtelte Aktion festgeschrieben, so wird die von ihr durchgeführte Arbeit vom System nur festgeschrieben, wenn die Aktion auf höchster Ebene festschreibt; wird die Aktion auf höchster Ebene abgebrochen, so wird alle ihre Arbeit rückgängig gemacht."
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "Das Festschreiben oder Abbrechen einer verschachtelten Aktion hat nicht automatisch Einfluss auf das Ergebnis der Aktion innerhalb derer sie verschachtelt ist. Dies hängt von der Anwendung ab und gestattet es dem Programmierer atomische Aktionen zu strukturieren, so dass diese Fehler enthalten, Arbeit rückgängig machen usw."
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "Asynchrones Festschreiben einer Transaktion"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "Standardmäßig führt JBossTS das Festschreibungsprotokoll einer Transaktion der höchsten Ebene auf synchrone Weise aus, d.h. allen registrierten Ressourcen wird mitgeteilt sich in der Anordnung eines einzelnen Threads vorzubereiten und anschließend entweder festgeschrieben oder zurückgesetzt zu werden. Dies hat mehrere mögliche Nachteile:"
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "Im Falle vieler registrierter Ressourcen kann das \"Prepare Operating\" logisch parallel an jeder Ressource aufgerufen werden. Der Nachteil ist, dass eine \"frühe\" Ressource in der Liste registrierter Ressourcen ein Zurücksetzen während der Vorbereitung erzwingt, möglicherweise werden viele \"Prepare Operations\" unnötigerweise gemacht."
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "Im Falle wo heuristisches Reporting nicht durch die Anwendung benötigt wird, kann die zweite Phase des Festschreibungsprotokolls asynchron erfolgen, da Erfolg oder Fehlschlagen unwichtig sind."
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"Daher liefert <emphasis>JBossTS</emphasis> Runtime-Optionen zur Aktivierung möglicher Threading-Optimierungen. Durch Einstellung der <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal>-Umgebungsvariable auf "
+"<literal>YES</literal>, während der Vorbereitungsphase wird ein separater Thread für jeden registrierten Teilnehmer innerhalb der Transaktion erstellt. Durch Einstellung von "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> auf "
+"<literal>YES</literal>, wird ein separater Thread erstellt, um die zweite Phase der Transaktion zu vervollständigen, falls keine Kenntnisse über heuritische Ergebnisse notwendig sind."
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "Unabhängige Transaktionen auf höchster Ebene"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr "Zusätzlich zu normalen Top-Level und verschachtelten atomischen Aktionen unterstützt <emphasis>TxCore</emphasis> auch unabhängige Top-Level Aktionen, die dazu verwendet werden können strenge Serialisabilität auf kontrollierte Weise aufzulockern. Eine unabhängige Aktion der höchsten Ebene kann von überall aus innerhalb einer anderen atomischen Aktion ausgeführt werden und verhält sich genauso wie eine normale Aktion der höchsten Ebene, das heißt ihre Ergebnisse werden dauerhaft, wenn sie festgeschrieben wird und werden nicht rückgängig gemacht wenn jedwelche der Aktionen innerhalb derer sie ursprünglich verschachtelt wurde, abgebrochen werden."
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Unabhängige Aktion auf höchster Ebene"
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "zeigt eine typische Verschachtelung atomischer Aktionen, wo Aktion B innerhalb Aktion A verschachtelt ist. Obwohl atomische Aktion C logisch innerhalb von Aktion B verschachtelt ist (ihre \"Begin\"-Operation wurde aufgerufen während B aktiv war) wird sie innerhalb der Struktur unabhängig von den anderen Aktionen festgeschrieben oder abgebrochen, weil es sich um eine unabhängige Aktion der obersten Ebene handelt. Aufgrund des Wesens unabhängiger Aktionen der obersten Ebene, sollten diese mit Vorsicht gehandhabt werden und nur in Situationen verwendet werden, die zuvor eingehend geprüft wurden."
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "Top-Level Aktionen können innerhalb einer Anwendung verwendet werden, indem Instanzen der Klasse <classname>TopLevelTransaction</classname> deklariert und verwendet werden. Sie werden auf genau diesselbe Weise wie andere Transaktionen verwendet."
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "Transaktionen innerhalb von save_state und restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"Beim Schreiben der <command>save_state</command> und "
+"<command>restore_state</command>-Operationen sollte man Vorsicht walten lassen um sicherzustellen, dass keine atomischen Aktionen gestartet werden (entweder explizit in der Operation oder implizit durch Verwendung einer anderen Operation). Diese Einschränkung kommt aufgrund der Tatsache auf, dass <emphasis>TxCore</emphasis> <command>restore_state</command> als Teil seiner Festschreibungsbearbeitung aufrufen kann, was im Versuch resultiert eine atomische Aktion während der Festschreibungs- oder Abbruchphase einer anderen Aktion auszuführen. Dies könnte die Atomizität-Properties der Aktion verletzen, die gerade festgeschrieben (abgebrochen) wird und wird daher nicht empfohlen."
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "Wenn wir uns das zuvor gegebene Array-Beispiel ansehen, so würden die \"Set\" und \"Get\"-Operationen wie unten dargestellt implementiert."
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Es handelt sich hierbei um eine Vereinfachung des Code, wobei Fehlerbedingungen und Ausnahmen ignoriert werden."
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Müll sammelnde Objekte"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "Java Objekte werden gelöscht, wenn der Müllsammler bestimmt, dass sie nicht länger benötigt werden. Das Löschen eines zum aktuellen Zeitpunkt unter Kontrolle einer Transaktion stehenden Objekts muss mit Vorsicht angegangen werden, da das Schicksal eines innerhalb einer Transaktion bearbeiteten Objekts ultimativ von der Transaktion bestimmt wird. Daher wird, unabhängig von Verweisen auf ein transaktionales und durch die Anwendung gewartetes Objekt <emphasis>TxCore</emphasis> stets seine eigenen Verweise behalten um sicherzustellen, dass das Objekt nicht als Müll gesammelt wird ehe die Transaktion nicht beendet wurde."
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "Transaktions-Timeouts"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "Standardmäßig leben Transaktionen bis sie durch die Anwendung beendet werden, die sie erstellt hat oder bis ein Fehler auftritt. Es ist jedoch möglich, einen Timeout (in Sekunden) auf pro-Transaktionsbasis einzustellen, so dass - falls die Transaktion nicht endet ehe der Timeout abläuft - eine automatische Zurücksetzung erfolgt."
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+"In <emphasis>TxCore</emphasis> wird der Timeout-Wert als ein Parameter zum <classname>AtomicAction</classname>-Konstruktor geliefert. Wird ein "
+"<literal>AtomicAction.NO_TIMEOUT</literal>-Wert bereitgestellt (der Standard) dann erfolgt für die Transaktion kein automatischer Timeout. Jeder andere positive Wert wird als Timeout für die Transaktion (in Sekunden) angenommen. Ein Wert von Null"
+"wird als allgemeiner Standard-Timeout angenommen, der durch die Property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal> geliefert werden kann. Falls er nicht geändert wird, so beträgt der Standardwert 60 Sekunden."
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"Wird eine Transaktion der höchsten Ebene mit einem nicht-Null Timeout erstellt, so wird sie zurückgesetzt, wenn sie nicht innerhalb der festgelegten Sekundenzahl beendet wird. <emphasis>JBossTS</emphasis> verwendet einen separaten \"Reaper-Thread\", der alle lokal erstellten Transaktionen überwacht und deren Zurücksetzen erzwingt wenn deren Timeouts ablaufen. Um zu verhindern, dass dieser Thread Anwendungszeit verbraucht, läuft er nur periodisch. Die Standard-Prüfperiode sind 120000 Millisekunden, aber dies kann durch Einstellen der <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal>-Property-Variable auf einen anderen Wert in Mikrosekunden geändert werden. Alternativ, falls <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> auf "
+"<literal>DYNAMIC</literal> eingestellt ist, erwacht der \"Transaction-Reaper\" beim Timeout jeder Transaktion. Dies hat den Vorteil, das Transaktionen früher beendet werden, kann aber zur ständigen Neuterminierung des Reaper Threads führen."
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"Wird ein Wert von 0 als Timeout für eine Transaktion der höchsten Ebene festgelegt (oder kein Timeout festgelegt), dann macht <emphasis>JBossTS</emphasis> keinen Timeout bei der Transaktion geltend, d.h. sie kann unbeschränkt laufen. Dieser Standard-Timeout kann durch Einstellen der "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> Property-Variablen außer Kraft und zum benötigten Timeout-Wert in Sekunden gesetzt werden, wenn <emphasis>ArjunaCore</emphasis> oder <emphasis>ArjunaJTS</"
+"emphasis> oder <literal>com.arjuna.ats.jts.defaultTimeout</literal> verwendet wird, wenn "
+"<emphasis>ArjunaJTS</emphasis> benutzt wird."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,332 @@
+# translation of Chapter_04.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 06:18+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "Tipps und Tricks"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "Allgemeines"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Verwendung von Transaktionen in Konstruktoren"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Beispiele in diesem Handbuch haben Transaktionen in der Implementierung von Konstruktoren für neue persistente Objekte verwendet. Dies ist absichtlich der Fall, da es die ordnungsgemäße Fortpflanzung des Status des Objekts zum Objektspeicher gewährleistet. Erinnern wir uns daran, dass der Status eines bearbeiteten persistenten Objekts nur dann in den Objektspeicher geschrieben wird, wenn die Transaktion der höchsten Ebene festgeschrieben wird. Wenn also die Konstruktor-Transaktion diejenige der höchsten Ebene ist und festgeschrieben wird, dann wird das neu erstellte Objekt in den Speicher geschrieben und wird sofort verfügbar. Falls die Konstruktor-Transaktion festgeschrieben jedoch verschachtelt wird, weil eine andere vor der Objekterstellung begonnene andere Transaktion läuft, dann wird der Status nur geschrieben, wenn sämtliche übergeordneten Transaktionen festgeschrieben werden."
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "Wenn andererseits der Konstruktor Transaktionen nicht verwendet wenn dieses möglich is, dann kann es zu Inkonsistenzen im System kommen. Ist zum Beispiel keine Transaktion bei der Erstellung eines Objekts aktiv, dann wird deren Status nicht gespeichert, ehe das Objekt nicht unter der Kontrolle einer Transaktion das nächste Mal bearbeitet wird."
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "Nehmen wir dieses einfache Beispiel:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"Hier werden zwei Objekte außerhalb der Kontrolle der Aktion A der höchsten Ebene erstellt. <literal>obj1</literal> ist ein neues Objekt; <literal>obj2</literal> ist ein altes, bestehendes Objekt. Wenn die \"remember\"-Operation von <literal>obj2</"
+"literal> aufgerufen wird, wird das Objekt aktiviert und die Uid von "
+"<literal>obj1</literal> memorisiert. Da diese Aktion den persistenten Status von <literal>obj2</literal> festschreibt könnte nun die Uid von <literal>obj1</literal> enthalten sein. Der Status von <literal>obj1</literal> selbst wurde jedoch nicht gespeichert da er nicht unter Kontrolle irgendeiner Aktion verändert wurde. Genau genommen wird er nie gespeichert, wenn er nicht unter der Kontrolle einer Aktion im weiteren Verlauf der Anwendung bearbeitet wurde. Falls aber der Konstruktor eine atomische Aktion am Status von <literal>obj1</literal> verwendet hat, so würde dies automatisch zum Zeitpunkt der Konstruktion gespeichert und diese Inkonsistenz würde nicht auftreten."
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "Mehr zu save_state und restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr "<emphasis>TxCore</emphasis> kann die benutzerdefinierte <command>save_state</command>-Operation eines Objekts effektiv zu jedem Zeitpunkt aufrufen, einschließlich während der Ausführung des Körpers des Objekt-Konstruktors (insbesondere wenn atomische Aktionen verwendet werden). Es ist daher wichtig, dass sämtlich durch save_state gespeicherte Variablen korrekt initialisiert werden."
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"Beim Schreiben der <command>save_state</command> und <command>restore_state</command>-Operationen sollte man ebenfalls Vorsicht walten lassen um sicherzustellen, dass keine Transaktionen gestartet wurden (entweder explizit in der Operation oder implizit durch Verwendung einer anderen Operation). Diese Einschränkung ist Folge der Tatsache, dass <emphasis>TxCore</emphasis> beim Versuch eine atomische Transaktion während der Festschreibungs- oder Abbruchphase einer anderen Transaktion festzuschreiben als Teil seiner Festschreibungsbearbeitung <command>restore_state</"
+"command> aufrufen kann. Dies könnte die Atomaritäts-Properties der festzuschreibenden (abgebrochenen) Transaktion verletzen und wird daher nicht empfohlen."
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"Um Crash Recovery für persistente Objekte zu unterstützen ist es nötig, dass alle <literal>save_state</literal> und <literal>restore_state</literal> "
+"Methoden von Benutzerobjekten <command>super.save_state</command> und "
+"<command>super.restore_state</command> aufrufen."
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Verpacken von Objekten"
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"Alle grundlegenden Typen von Java (int, long, etc.) können aus einer <classname>Input/OutputObjectState</classname>-Instanz gespeichert und wiederhergestellt werden indem die Verpack- (und Auspack-) Hilfsprogramme, die durch <classname>Input/OutputObjectState</"
+"classname> bereitgestellt werden, verwendet werden. Jedoch sollte das Verpacken und Auspacken von Objekten unterschiedlich gehandhabt werden. Der Grund hierfür ist die Tatsache, dass das Verpacken von Objekten das zusätzliche Problem des Aliasing aufbringt. Das heißt, zwei verschiedene Objektreferenzen können auf denselben Posten verweisen. Zum Beispiel:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "Hier verweisen sowohl s1 als auch s2 auf denselben String und eine naive Implementierung von <command>save_state</command> könnte dazu führen, dass der String einfach zwei Mal kopiert wird. Aus einer <command>save_state</command>-Perspektive ist dies schlichtweg ineffizient. Jedoch macht es <command>restore_state</command> schlichtweg inkorrekt, da es die beiden Strings in unterschiedliche Speicherbereiche entpacken und die ursprünglichen Aliasing-Informationen zerstören würde. Die aktuelle Version von TxCore packt und entpackt separate Objektreferenzen."
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "Direkte Verwendung von StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+"Alle Beispiele in diesem Handbuch leiten Benutzerklassen aus dem "
+"<classname>LockManager</classname> ab. Dafür gibt es zwei Gründe."
+"Zunächst einmal erfordern die Serialisierbarkeitseinschränkungen atomischer Aktionen es und zweitens senkt es die Notwendigkeit von Eingriffen durch den Programmierer. Falls aber nur Zugriff auf <emphasis>TxCore</emphasis>s Persistenz- und Wiederherstellungsmechanismen benötigt werden, ist die direkte Ableitung einer Benutzerklasse vom <classname>StateManager</classname> möglich."
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr "Direkt vom <classname>StateManager</classname> abgeleitete Klassen müssen explizit dessen Statusmanagement-Mechanismen verwenden (diese Interaktionen werden normalerweise durch den <classname>LockManager</classname> vorgenommen). Aus Sicht des Programmierers führt dies zur korrekten Verwendung der Operationen \"activate\", \"deactivate\" und \"modified\", da die Konstruktoren des <classname>StateManager</classname>s Konstruktors effektiv identisch mit dem <classname>LockManager</classname> sind."
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr "<command>Activate</command> lädt ein Objekt aus dem Objektspeicher. Die UID des Objekts muss bereits via Konstruktor eingestellt sein und das Objekt muss im Speicher vorhanden sein. Wird das Objekt erfolgreich gelesen, so wird <command>restore_state</command> aufgerufen, um das Objekt im Speicher zu bauen. <command>Activate</command> ist id-unwirksam, so dass nach Aktivierung eines Objekts weitere Aufrufe ignoriert werden. Der Parameter repräsentiert den Root-Namen des Objektspeichers für die Suche nach dem Objekt. Ein Wert von Null bedeutet Verwendung des Standardspeichers."
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 ""
+"Die Umkehrung von \"activate\". Erst Aufruf von <command>save_state</command> zum Bau des"
+"komprimierten Objekt-Image, dass dann im Objektspeicher gespeichert wird. Objekte können nur gespeichert werden, wenn sie seit ihrer Aktivierung verändert wurden. Der Parameter repräsentiert den Root-Namen des Objektspeichers, in welchem das Objekt gespeichert werden sollte. Ein Wert von Null bedeutet Verwendung des Standardspeichers."
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 ""
+"<emphasis>Muss</emphasis> vor der Bearbeitung des Objekts im Speicher aufgerufen werden. "
+"Falls dies nicht erfolgt, so wird das Objekt nicht im Objektspeicher durch \"deactivate\" gespeichert."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,969 @@
+# translation of Chapter_05.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 06:42+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "Tools"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "Dieses Kapitel erklärt, wie das Tools Framework gestartet und verwendet wird und welche Tools verfügbar sind."
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "Starten der \"Transaction Service Tools\""
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "Wie die Transaction Service Tools gestartet werden unterscheidet sich je nach verwendetem Betriebssystem:"
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr ""
+"Doppelklicken Sie auf das ‘Start Tools’-Link in der JBoss Transaction Service "
+"Programmgruppe im Start-Menü."
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Starten Sie eine Bash-Shell und tippen Sie:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+"Nachdem Sie dies getan haben, erscheint der Tools-Bildschirm. Dies ist der Launch-Bereich für alle mit <emphasis>JBoss Transaction "
+"Service</emphasis> gelieferten Tools. Ganz oben im Bildschirm sehen Sie einen Menü-Balken. Dieser besitzt vier Elemente:"
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>File</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "JMX-Browser öffnen"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr "Dies zeigt das JMX-Browser-Fenster an (siehe ***Verwendung des JMX-Browsers für weitere Informationen zur Verwendung des JMX-Browsers)."
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Objektspeicher-Browser öffnen"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 "Dies zeigt das JBossTS Object Store Browser-Fenster an (siehe ***Verwendung des Objektspeicher-Browsers für weitere Informationen zur Verwendung des Objektspeicher-Browsers)."
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Einstellungen"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "Diese Option öffnet den Einstellungsdialog, mit dem Sie die verschiedenen verfügbaren Tools konfigurieren können."
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr "Exit"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "Dies schließt den Tools-Bildschirm und beendet die Anwendung, wobei ungespeicherte/unbestätigte Änderungen verloren gehen."
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>Performance</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Open"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+"Dies öffnet einen Performance-Bildschirm – siehe <xref linkend=\"Performance_Tool\"/> "
+"für weitere Informationen zum Performance-Tool."
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr "Close All"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"dies schließt alle aktuell offenen Performance-Bildschirme – siehe <xref "
+"linkend=\"Performance_Tool\"/> für weitere Informationen zum Performance-Tool."
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>Window</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Cascade Windows"
+
+#. 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 "Dies ordnet die Bildschirme in einer diagonalen Linie an, damit Sie einen bestimmten Bildschirm finden können."
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Für jeden aktuell sichtbaren Bildschirm ist hier eine extra Menüoption verfügbar. Die Auswahl dieser Menüoption bringt den assoziierten Bildschirm vorne auf das Desktop."
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>Help</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Dies zeigt den \"About\"-Bildschirm mit Produktinformationen an."
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Verwendung des Performance-Tools"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+"Das Performance-Tool kann zur Darstellung von Performance-Informationen des Transaktionsdienstes verwendet werden. Diese Informationen werden mittels des Performance "
+"JMX-Bean gesammelt, was bedeutet, dass der Transaktionsdienst in einen Applikationsserver integriert werden muss um Performance-Informationen zu liefern."
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"Die Performance-Informationen werden über ein Multi-Serien Diagramm angezeigt. Um dieses Diagramm anzusehen, öffnen Sie einfach einen Performance-Bildschirm indem Sie "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice> wählen"
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "Der jetzt erscheinende Bildschirm enthält ein Multi-Serien-Diagramm, das die folgenden Informationen anzeigen kann:"
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr "Anzahl von Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Anzahl von festgeschriebenen Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Anzahl von abgebrochenen Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Anzahl von verschachtelten Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Anzahl aufgebrachter \"Heuristics\"."
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "Um diese Serie an- und auszuschalten, wählen Sie einfach die entsprechende Menü-Option aus dem Serien-Menü."
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 "Wenn Serien angeschaltet werden, so erscheinen diese in der Legende unten im Diagramm. Die Farbe neben dem Namen der Serie (zum Beispiel für erstellte Transaktionen \"Transactions Created\") ist die Farbe der diese Daten repräsentierenden Daten."
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "Die im Diagramm dargestellten Daten stehen im Verhältnis zur Zeit. Die Y-Achse repräsentiert die Anzahl von Transaktionen, die X-Achse repräsentiert Zeit."
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+"Das Sampling von Daten kann mittels <menuchoice><guimenu>Sampling</guimenu></menuchoice>-Menü zu jedem Zeitpunkt angehalten und erneut gestartet werden, und die aktuell sichtbaren Daten können als durch Kommas getrennte Werte - sog. \"Comma Separate Values\" (CSV) - in einer Datei für den Import der Daten in eine Tabellenanwendung gespeichert werden, indem die "
+"<menuchoice><guimenu>Save to .csv</guimenu></menuchoice>-Menüoption aus dem <menuchoice><guimenu>Data</guimenu></menuchoice>-Menü verwendet wird."
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Verwendung des JMX-Browsers"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"Um das JMX-Browser-Fenster zu öffnen, klicken Sie auf das <menuchoice><guimenu>File</guimenu></menuchoice>-Menü und anschließend auf die <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>-Option. Das JMX-Browser-Fenster wird dann angezeigt."
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+"Der Bildschirm besteht aus zwei Hauptabschnitten: Dem \"Details\"-Panel und dem MBean-Panel. Das MBean-Panel zeigt die durch den MBean-Server offengelegten MBeans an. "
+"Diese werden nach Domain-Namen gruppiert. Das Details-Panel zeigt Informationen zum aktuell gewählten MBean an. Um ein MBean auszuwählen, machen Sie einfach einen Linksklick mit der Maus und es wird markiert. Die im Details-Panel angezeigten Informationen lauten wie folgt:"
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "Die Gesamtzahl von auf diesem Server registrierten MBeans."
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Konstruktoren."
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Attribute."
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Operationen."
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Benachrichtigungen."
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "Eine kurze Beschreibung des MBean."
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+"Es existiert außerdem ein <menuchoice><guimenu>View</guimenu></menuchoice>-Link, das beim Klicken darauf die durch dieses MBean offengelegten Attribute und Operationen anzeigt. "
+"Von hier aus können Sie lesbare Attribute ansehen, schreibbare Attribute verändern und Operationen aufrufen."
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "Verwendung von Attributen und Operationen"
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+"Wird das <menuchoice><guimenu>View</guimenu></menuchoice>-Link geklickt, so wird der \"View JMX Attributes and Operations\"-Bildschirm zur Ansicht von JMX Attributen und Operationen angezeigt. Von hier aus können Sie auch alle lesbaren Attribute ansehen, die durch das gewählte MBean offengelegt werden. Sie können auch schreibbare Attribute bearbeiten. Ist ein Attribut schreibgeschützt, so werden Sie allerdings den Attributwert nicht bearbeiten können. Um einen Attributwert zu verändern, doppelklicken Sie einfach auf den aktuellen Wert und geben Sie den neuen Wert ein. Falls die "
+"<guibutton>...</guibutton>-Schaltfläche aktiviert ist, so können Sie darauf klicken um eine passendere Bearbeitungsmethode einzusehen. Handelt es sich beim Attribut-typ um einen JMX-Objektnamen, so führt das Klicken dieser Schaltfläche zur Anzeige der JMX-Attribute und Operationen für dieses Objekt."
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "Sie können zu jedem Zeitpunkt die <guibutton>Refresh</guibutton>-Schaltfläche klicken, um die Attributwerte neu zu laden. Wird eine Ausnahme während des Abrufs eines Attributswerts gemeldet, so wird diese statt des Attributwerts angezeigt."
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+"Sie können auch Operationen an einem MBean aufrufen. Eine Liste von durch ein MBean offengelegten Operationen wird unter der Attributliste angezeigt. Um eine Operation aufzurufen, wählen Sie einfach"
+"aus der Liste und klicken Sie die <guibutton>Invoke</guibutton>-Schaltfläche. Falls die Operation Parameter erfordert, so öffnet sich ein weiteres Fenster, von dem aus Sie Werte für jeden der erforderlichen Parameter festlegen müssen. Parameterwerte werden auf diesselbe Weise festgelegt wie auch JMX-Attributwerte. Nachdem Sie einen Wert für jeden Parameter festgelegt haben, klicken Sie auf die <guibutton>Invoke</guibutton>-Schaltfläche, um den Aufruf durchzuführen."
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Ist der Methodenaufruf beendet, so wird dessen Wiedergabewert angezeigt."
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "Verwendung des Objektspeicher-Browsers"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+"Um das Objektspeicher-Browser-Fenster zu öffnen, klicken Sie auf das "
+"<menuchoice><guimenu>File</guimenu></menuchoice>-Menü und anschließend auf die "
+"<menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice>-Option. Das Objektspeicher-Browser-Fenster wird dann angezeigt."
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "Das Browser-Fenster des Objektspeichers ist in vier Abschnitte aufgeteilt:"
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+"\"Object Store Roots\" - dies ist ein Pull-Down der aktuell verfügbaren Object "
+"Store Roots. Die Auswahl einer Option aus der Liste füllt die Hierarchie-Ansicht mit den Inhalten des ausgewählten Root wieder auf."
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "\"Object Store\" Hierarchie – dies ist ein Baum, der die aktuelle Objektspeicher Hierarchie zeigt. Die Auswahl eines Node aus diesem Baum zeigt die an diesem Speicherort gespeicherten Objekte an."
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objects – dies ist eine Liste von Symbolen, die die im ausgewählten Speicherort gespeicherten Objekte repräsentiert."
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 ""
+"Object Details – dies zeigt Informationen zum aktuell gewählten Objekt "
+"(nur falls der Objekttyp dem Repository zur Statusansicht bekannt ist, Informationen zum Schreiben von sog. \"Object State Viewers\" finden Sie in \"Writing an OSV\")."
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "Object State Viewers (OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+"Wird ein Objekt im Objekt-Panel des Hauptbildschirms ausgewählt, so wird der registrierte Object State Viewer (oder OSV) für diesen Objekttyp aufgerufen. Die Aufgabe einer OSV ist es, dem Benutzer Informationen via des Benutzer-Interface verfügbar zu machen und Informationen zum gewählten Objekt anzuzeigen. Mit den Standard-Tools wird eine OSV für atomische Aktionen (Atomic Actions) distribuiert, und die OSV zeigt Informationen zu den abstrakten Datensätzen (Abstract Records) in ihren verschiedenen Listen (z.B. heuristic, failed, read-"
+"only, usw) an. Es ist auch möglich, eigene OSVs zu schreiben, die zur Anzeige von Informationen von definierten Objekttypen verwendet werden. Dieses Thema behandeln wir als nächstes."
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "Schreiben eines OSV"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "Das Schreiben eines OSV-Plugins gestattet es Ihnen, die Möglichkeiten des Object Store Browsers zu erweitern, um den Status benutzerdefinierter abstrakter Datensätze anzuzeigen. Ein OSV-Plugin ist einfach eine Klasse, die das Interface implementiert:"
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "Es muss in einer JAR innerhalb des Plugins-Verzeichnisses gepackt werden. Dieses Beispiel zeigt, wie ein OSV-Plugin für eine abstrakte Datensatz-Unterklasse erstellt wird, die wie folgt aussieht:"
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr "Wird der abstrakte Datensatz im Object Store Browser angesehen, ist es schön, wenn der aktuelle Wert erscheint. Dies lässt sich leicht einrichten, da wir den Status in eine Instanz unseres abstrakten Datensatzes lesen und <methodname>getValue()</methodname> aufrufen können. Nachfolgend sehen Sie den Quellcode eines Object Store Browsers:"
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+"Die <methodname>uidNodeExpanded</methodname>-Methode wird aufgerufen, wenn eine den gegebenen Typ repräsentierende UID "
+"(Unique Identification) im Object Store Hierarchie-Baum erweitert wird. Dies ist aus Sicht dieses Plugin nicht erforderlich, da dieser abstrakte Datensatz nicht direkt im Objektspeicher sichtbar ist, sondern nur via einer der Listen in einer atomischen Aktion einsehbar ist. Die Methode "
+"<methodname>entrySelected</methodname> wird aufgerufen, wenn ein Eintrag aus der Objektansicht ausgewählt wird, der ein Objekt des vorgegebenen Typs repräsentiert. In beiden Methoden wird das StatePanel zur Anzeige von Informationen zum Objektstatus verwendet. Das Status-Panel besitzt folgende Methoden, die bei der Anzeige dieser Informationen helfen:"
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>: Diese Methode kann zur Anzeige allgemeiner Informationen verwendet werden."
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 "<methodname>setData(String name, String value)</methodname>: Diese Methode wird dazu verwendet Informationen in die Tabelle zu platzieren, die durch das Object Store Browser Tool dargestellt wird."
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: Diese Methode wird zur Aktivierung der Details-Schaltfläche verwendet. Das Listener-Interface gestattet es, dass ein Plugin informiert wird, wenn diese Schaltfläche gedrückt wird. Es hängt vom Plugin-Entwickler ab zu entscheiden, wie diese Informationen weiter angezeigt werden."
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 "In diesem Beispiel lesen wird den Status aus dem Objektspeicher und verwenden den von getValue() wiedergegebenen Wert zur Eingabe in eine Status-Panel-Tabelle. Die getType()-Methode gibt den Typ wieder, gegen den dieses Plugin registriert werden soll."
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"Um dieses Plug-in zum Object Store Browser hinzuzufügen ist es notwendig, es in eine JAR-Datei (Java Archive) zu packen deren Namen ein 'osbv-' vorangestellt ist. "
+"Die JAR-Datei muss bestimmte Informationen innerhalb der Manifestdatei enthalten, damit der Object Store Browser weiß, bei welchen Klassen es sich um Plug-ins handelt. All dies kann mittels eines <ulink url=\"http://ant.apache.org\">Apache ANT</ulink>-Skripts wie folgt durchgeführt werden:"
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"Nachdem eine JAR mit den korrekten Informationen in der Manifest-Datei erstellt wurde, muss sie nur noch im <emphasis>bin/tools/plugins</"
+"emphasis>-Verzeichnis untergebracht werden."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,878 @@
+# translation of Chapter_06.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 06:44+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "Konstruktion von transaktionalen Objekten für Java-Anwendungen"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "Anwendungskonstruktion"
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Es gibt zwei unterschiedliche Phasen bei der Entwicklung einer TxCore-Anwendung:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Entwicklung neuer Klassen mit bestimmten Charakteristika (z.B. persistent, wiederherstellbar d.h. \"recoverable\", nebenläufigkeitskontrolliert d.h. \"Concurrency Controlled\")."
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Entwicklung der Anwendung(en), die die neue Objektklasse verwenden."
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+"Obwohl diese beiden Phasen parallel und von einer einzelnen Person durchgeführt werden können, nennen wir den ersten Schritt den Job des Klassenentwicklers und den zweiten den Job des Anwendungsentwicklers. Der Klassenentwickler kümmert sich um die Definition der passenden <code>save_state</code> und <code>restore_state</code>-Operationen für die Klasse, setzt passende Sperren in Operationen und ruft die passenden TxCore-Klassenkonstruktoren."
+"Der Anwendungsentwickler wird sich eher um die Definition der allgemeinen Struktur der Applikation kümmern, insbesondere im Hinblick auf die Verwendung von atomischen Aktionen."
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 ""
+"Dieses Kapitel illustriert die in vorangegangenen Abschnitten gemachten Punkte anhand einer einfachen Anwendung: In diesem Falle wird eine einfache FIFO Warteschleifen-Klasse für ganzzahlige Werte entwickelt. Die Implementierung der Warteschleife wird eine doppelt verlinkte Listenstruktur haben und wird als einzelnes Objekt implementiert. "
+"Wir werden dieses Beispiel für den Rest dieses Handbuchs verwenden, um die verschiedenen durch TxCore bereitgestellten Mechanismen zu illustrieren. Zwar ist dies eine unrealistische Beispielanwendung, ermöglicht es jedoch sämtliche TxCore-Modifikationen zu beschreiben, ohne dass tiefer gehende Kenntnisse vom Anwendungscode nötig wären."
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "Im Rest dieses Kapitels gehen wir davon aus, dass die Anwendung nicht distribuiert wird. Ist dies nicht der Fall, so muss Kontextinformation entweder implizit oder explizit fortgepflanzt werden."
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "Warteschleifen-Beschreibung (Queue Description)"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "Bei der Warteschleife handelt es sich um eine traditionelle FIFO-Warteschleife wo Elemente vorne hinzugefügt und hinten entfernt werden. Die durch die Warteschleifenklasse gelieferten Operationen gestatten es Werten in die Warteschleife platziert zu werden (\"enqueue\") und daraus entfernt zu werden (\"dequeue\"), und es ist auch möglich die Werte von Elementen in der Warteschleife zu verändern oder zu überprüfen. In dieser Beispielimplementierung wird ein Array zur Repräsentation einer Warteschleife verwendet. Eine Beschränkung auf <code>QUEUE_SIZE</code>-Elemente gilt für dieses Beispiel."
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "Die Java Interface-Definition dieser einfachen Warteschleifenklasse ist unten angegeben:"
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Konstruktoren und Dekonstruktoren"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "Wie im vorherigen Abschnitt dargestellt, muss zur Verwendung eines bestehenden persistenten Objekts ein spezieller Konstruktor verwendet werden, der die Uid des persistenten Objekts annimt; die Implementierung eines solchen Konstruktors ist unten angegeben:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "Der ein neues persistentes Objekt erstellende Konstruktor ist ähnlich:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+"Die Verwendung einer atomischen Aktion innerhalb des Konstruktors für ein neues Objekt folgt den zuvor beschriebenen Richtlinien und stellt sicher, dass der Status des Objekts in den Objektspeicher geschrieben wird, wenn die entsprechende atomische Aktion auf höchster Ebene festgeschrieben wird (welches entweder Aktion A oder eine einschließende Aktion wenn die <code>TransactionalQueue</code> konstruiert wurde). Die Verwendung atomischer Aktionen in einem Konstruktor ist einfach: Eine Aktion muss zuerst deklariert und ihre "
+"\"begin\"-Operation aufgerufen sein; die Operation muss dann eine entsprechende Sperre für das Objekt einstellen (in diesem Fall ist eine <code>WRITE</code>-Sperre erforderlich), dann wird der Hauptkörper des Konstruktors ausgeführt. Ist dies erfolgreich, so kann die atomische Aktion festgeschrieben werden, andernfalls wird sie abgebrochen."
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "Der Destruktor der Warteschleifen-Klasse muss lediglich die \"terminate\"-Operation von <methodname>LockManager</methodname> aufrufen."
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state und type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "Die Implementierungen von save_state und restore_state sind relativ einfach für dieses Beispiel:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"Da die Warteschleifen-Klasse ist von der <classname>LockManager</"
+"classname>-Klasse abgeleitet ist, sollte der Operationstyp sein:"
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "\"Enqueue\"/\"Dequeue\"-Operationen (einreihen und aus der Warteschlange entfernen)"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "Sollen Operationen der Warteschlange-Klasse als atomische Aktionen codiert werden, dann könnte die Einreihungsoperation (\"enqueue\") die unten angegebene Struktur besitzen (die Operation zum Entfernen aus der Warteschlange - \"dequeue\" - wäre ähnlich strukturiert):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "Die Implementierung von <methodname>queueSize</methodname> ist unten dargestellt:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "inspectValue/setValue Operationen"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+"Die Implementierung von <methodname>inspectValue</methodname> ist unten dargestellt. "
+"<methodname>setValue</methodname> ist ähnlich, nicht dargestellt."
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Der Client"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "Statt den gesamten Code für den Client zu zeigen, wollen wir uns auf einen repräsentativen Teil konzentrieren. Vor dem Aufruf von Operationen am Objekt muss der Client zunächst daran anbinden. Im lokalen Fall erfordert dies lediglich, dass der Client eine Instanz des Objekts erstellt."
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr "Vor dem Aufrufen einer der Operationen der Warteschleife, startet der Client eine Transaktion. Die <methodname>queueSize</methodname>-Operation ist unten angezeigt:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Anmerkungen"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "Da das Warteschlangen-Objekt persistent ist, überlebt der Status des Objekts alle Fehlfunktionen des Nodes auf dem es sich befindet. Der Status des Objekts das überlebt, wird von der letzten festgeschriebenen atomischen Aktion produziert, die an dem Objekt durchgeführt wird. Ist es zum Beispiel Absicht einer Anwendung zwei Einreihungsoperationen atomisch durchzuführen, so kann dies erfolgen, indem die Einreihungsoperationen in einer anderen, umschließenden atomischen Aktion verschachtelt werden. Zusätzlich werden nebenläufige Operationen an einem solchen persistenten Objekt serialisiert, wodurch Inkonsistenzen beim Status des Objekts verhindert werden. Da jedoch die Elemente der Warteschlange-Objekte nicht individuell auf Nebenläufigkeit kontrolliert werden, werden bestimmte Kombinationen von Aufrufen nebenläufiger Operationen seriell ausgeführt, während sie der Logik nach nebenläufig ausgeführt werden sollten. Zum Beispiel bei der Bearbeitung der Stati!
  von zwei verschiedenen Elementen der Warteschlange. Im nächsten Abschnitt gehen wir auf einige dieser Themen ein."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+# translation of Chapter_07.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 07:01+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "Konfigurationsoptionen"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Optionen"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "Die folgende Tabelle zeigt die Konfigurations-Features, mit den Standardwerten in kursivem Schriftbild. Weitere Einzelheiten zu jeder Option finden Sie in den relevanten Abschnitten dieses Dokuments."
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "TxCore-Konfigurationsoptionen."
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Konfigurationsname"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Mögliche Werte"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Beschreibung"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "Schaltet die Synchronisation des Objektspeichers an oder aus. Mit Vorsicht zu verwenden."
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "Legt den Typ von zu verwendender Objektspeicher-Implementierung fest."
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/jeder ganzzahlige Wert"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Einstellen der Verzeichniszahl zum Hashen der Objektstati für die HashedStore-Objektspeicher-Implementierung."
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Festlegen der zu verwendenden Sperrspeicher-Implementierung."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Legt den Speicherort des Sperrspeichers fest."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "Jeder Speicherort in den die Anwendung schreiben kann."
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "Festlegen des Speicherorts des Objektspeichers."
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "Festlegen des Namen des Objektspeicher-Root."
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "Die zu verwendende Implementierung von Transaktionsprotokoll."
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "Schaltet asynchrone Festschreibung an oder aus (Standard)."
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "Schaltet asynchrones \"Prepare\" an oder aus (Standard)."
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "JDBCAccess-Klassenname"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "Die zu verwendende JDBCAccess-Implementierung für Objektspeicher auf Benutzerebene."
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "Die zu verwendende JDBCAccess-Implementierung für Transaktions-Objektspeicher."
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "Aktivieren oder Deaktivieren der ein-Phasen Festschreibungsoptimierung."
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "Aktivieren oder Deaktivieren der schreibgeschützten (read-only) Optimierung für den Abbruch der zweiten Phase."
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "Starten/stoppen des Sammelns von statistischen Informationen zur Transaktion."
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+"Mit aktiviertem oder deaktiviertem Transaktionssystem starten oder stoppen. Hin- und herschalten via der com."
+"arjuna.ats.arjuna.coordinator.TxControl-Klasse."
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Integer"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Timeout in Millisekunden"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/de-DE/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_A.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_A.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_A.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,269 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix>
+    <title>Object store implementations</title>
+    
+    <section>
+        <title>The ObjectStore</title>
+		<para>
+			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.
+		</para>
+		<para>
+			This release of JBossTS contains several different implementations of a basic object store. Each serves a particular purpose and is generally optimised for that purpose. All of the implementations are derived from the <interface>ObjectStore</interface> interface. This defines the minimum operations which must be provided in order for an object store implementation to be used by JBossTS. The default object store implementation can be overridden at runtime by setting the <property>com.arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable to one of the types described below.
+		</para>
+<screen>
+	/*
+	* This is the base class from which all object store types are derived.
+	* Note that because object store instances are stateless, to improve
+	* efficiency we try to only create one instance of each type per process.
+	* Therefore, the create and destroy methods are used instead of new
+	* and delete. If an object store is accessed via create it *must* be
+	* deleted using destroy. Of course it is still possible to make use of
+	* new and delete directly and to create instances on the stack.
+	*/
+	
+	public class ObjectStore
+	{
+	public static final int OS_COMMITTED;
+	public static final int OS_COMMITTED_HIDDEN;
+	public static final int OS_HIDDEN;
+	public static final int OS_INVISIBLE;
+	public static final int OS_ORIGINAL;
+	public static final int OS_SHADOW;
+	public static final int OS_UNCOMMITTED;
+	public static final int OS_UNCOMMITTED_HIDDEN;
+	public static final int OS_UNKNOWN;
+	public ObjectStore (ClassName type);
+	public ObjectStore (ClassName type, String osRoot);
+	public ObjectStore (String osRoot);
+	public synchronized boolean allObjUids (String s, InputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized boolean allObjUids (String s, InputObjectState buff,
+	int m) throws ObjectStoreException;
+	
+	public synchronized boolean allTypes (InputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized int currentState(Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean commit_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean hide_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean reveal_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized InputObjectState read_committed (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized InputObjectState read_uncommitted (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean remove_committed (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean remove_uncommitted (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean write_committed (Uid u, String tn,
+	OutputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized boolean write_uncommitted (Uid u, String tn,
+	OutputObjectState buff)
+	throws ObjectStoreException;
+	public static void printState (PrintStream strm, int res);
+};			
+</screen>
+		<para>
+			JBossTS programmers need not usually interact with any of the object store implementations directly other than possibly to create them in the first place (even this is not necessary if the default store type is used as JBossTS will create stores as necessary). All stores manipulate instances of the class <classname>ObjectState</classname> which are named using a type (via the object's type() operation) and a Uid. For atomic actions purposes object states in the store can be principally in two distinct states: OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED state but when modified under the control of an atomic action a new second object state may be written that is in the OS_UNCOMMITTED state. If the action commits this second object state replaces the original and becomes OS_COMMITTED. If the action aborts, this second object state is simply discarded. All of the implementations provided with this release handle these state transitions by ma!
 king use of shadow copies of object states, 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.
+		</para>
+		<para>
+			Browsing of the contents of a store is possible through the <methodname>allTypes</methodname> and <methodname>allObjUids</methodname> operations. <methodname>allTypes</methodname> returns an <type>InputObjectState</type> containing all of the type names of all objects in a store, terminated by a null name. <methodname>allObjUids</methodname> returns an <type>InputObjectState</type> that contains all of the Uids of all objects of a given type terminated by the special <methodname>Uid.nullUid()</methodname>.
+		</para>
+    </section>
+    <section id="Persistent_object_stores">
+	    <title>Persistent object stores</title>
+	    	<para>
+			This section briefly describes the characteristics and optimisations of each 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.
+		</para>
+		<formalpara>
+			<title>Common functionality</title>
+			<para>In addition to the features mentioned earlier all of the supplied persistent object stores obey the following rules:</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Each object state is stored in its own file that is named using the <code>Uid</code> of the object.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The type of an object (as given by the <methodname>type()</methodname> operation) determines the directory into which the object is placed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					All stores also have the notion of a localised root directory that is 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>.
+				</para>
+			</listitem>
+		</itemizedlist>
+<screen>
+&lt;ObjectStore root Directory from configure&gt;	/JBossTS/ObjectStore/
+	&lt;ObjectStore Type1&gt;			FragmentedStore/
+		&lt;Default root&gt;			defaultStore/
+			&lt;StateManager&gt;			StateManager
+				&lt;LockManager&gt;			LockManager/
+					&lt;User Types&gt;		
+	&lt;Localised root 2&gt;		myStore/
+		&lt;StateManager&gt;			StateManager/
+									
+	&lt;ObjectStore Type2&gt;		ActionStore/
+		&lt;Default root&gt;			defaultStore/	
+</screen>
+    
+		<formalpara>
+			<title>The shadowing store</title>
+			<para>
+				This is the original version of the object store as provided in prior releases and is implemented by the class <classname>ShadowingStore</classname>. It is simple but slow. It uses pairs of files to represent objects (the shadow version and the committed version) and files are opened, locked, operated upon, unlocked and closed on every interaction with the object store. Thus significant portions of time can be spent in the system simply opening, closing and renaming files, all of which are very expensive operations.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowingStore</type>.
+		</para>
+		<formalpara>
+			<title>No file-level locking</title>
+			<para>
+				Since transactional objects are concurrency controlled through <methodname>LockManager</methodname>, it is not necessary to impose additional locking at the file level, as the basic ShadowingStore implementation does. Therefore, the default object store implementation for JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-level locking. This enables it to provide better performance than the <methodname>ShadowingStore</methodname> implementation.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowNoFileLockStore</type>.
+		</para>
+		<formalpara>
+			<title>The hashed store</title>
+				<para>
+					The <code>HashedStore</code> has the same structure for object states as the shadowing stores but has an alternate directory structure that is better suited to storing large numbers of objects of the same type. Using this store objects are scattered amongst a set of directories by applying a 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.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>HashedStore</type>.
+		</para>
+		<formalpara>
+			<title>No file-level locking</title>
+				<para>
+					Since transactional objects are concurrency controlled through <methodname>LockManager</methodname>, it is not necessary to impose additional locking at the file level, as the basic <methodname>ShadowingStore</methodname> implementation does. Therefore, the default object store implementation for JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-level locking. This enables it to provide better performance than the <methodname>ShadowingStore</methodname> implementation.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowNoFileLockStore</type>.
+		</para>
+		<formalpara>
+			<title>The hashed store</title>
+			<para>
+				The <methodname>HashedStore</methodname> has the same structure for object states as the shadowing stores but has an alternate directory structure that is better suited to storing large numbers of objects of the same type. Using this store objects are scattered amongst a set of directories by applying a 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.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>HashedStore</type>.
+		</para>
+		<formalpara>
+			<title>The JDBC store</title>
+			<para>
+				The <methodname>JDBCStore</methodname> uses a JDBC database to save persistent object states; when used in conjunction with the Transactional Objects for Java API nested transaction support is available. In the current implementation, all object states are stored as Binary Large Objects (BLOBs) within the same table. The limitation on object state size imposed by using 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.
+			</para>
+		</formalpara>
+		<para>
+			When using the JDBC object store, the application must provide an implementation of the following interface, located in the <code>com.arjuna.ats.arjuna.objectstore</code> package:
+		</para>
+<screen>
+public interface JDBCAccess
+{
+	public Connection getConnection () throws SQLException;
+	public void putConnection (Connection conn) throws SQLException;
+	public void initialise (ObjectName objName);
+}
+</screen>
+		<para>
+			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:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>getConnection</methodname>: returns the Connection to use. This method will be called whenever a connection is required and the 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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>initialise</methodname>: this can be used to pass additional arbitrary information to the implementation.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The JDBC object store will initially request the number of Connections defined in the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial</property> property and will use no more than defined in the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</property> property.
+		</para>
+		<para>
+			The implementation of the <interfacename>JDBCAccess</interfacename> interface to use should be set in the <property>com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess</property> property variable.
+		</para>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>JDBCStore</type>.
+		</para>
+		<para>
+			A JDBC object store can be used for managing the transaction log. In this case, the transaction log implementation should be set to <property>JDBCActionStore</property> and the <methodname>JDBCAccess</methodname> implementation must be provided via the <property>com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this case, the default table name is JBossTSTxTable.
+		</para>
+		<note>
+			<para>
+				It is possible to use the same JDBCAccess implementation for both the user object store and also the transaction log.
+			</para>
+		</note>
+		<formalpara>
+			<title>The cached store</title>
+				<para>
+					This object store used the hashed object store, but does not read or write states to the persistent backing store immediately. It maintains the states in a volatile memory cache and either flushes the cache periodically or when 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.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>CachedStore</type>.
+		</para>
+		<para>
+			The store can be configured with the following properties:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</property> sets the number of internal stores to hash the states over. The default value is 128.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</property> is the maximum size the cache can reach before a flush is triggered. The default is 10240 bytes.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.removedItems</property> is the maximum number of removed items that the cache can contain before a flush is triggered. By default, calls to remove a state that is in the cache will simply remove the state from the cache, but leave a blank entry (rather than remove the entry immediately, which would 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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</property> sets the time in milliseconds for periodically flushing the cache. The default is 120 seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</property> determines whether flushes of the cache are sync-ed to disk. The default is OFF. To enable, set to ON.
+				</para>
+			</listitem>
+		</itemizedlist>
+    </section>
+</appendix>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_A.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_B.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_B.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_B.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,253 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix>
+   <title>Class definitions</title>
+    
+    <section>
+        <title>Introduction</title>
+	<para>
+		This appendix contains an overview of those classes that the application programmer will typically use. The aim of this appendix is to provide a 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.
+	</para>
+    </section>
+    <section>
+    	<title>Class library</title>
+<!--	<formalpara>
+		<title>Lock Manager</title>
+		<para></para> 
+	</formalpara> -->
+	<example>
+		<title>Lock Manager</title>
+<screen>
+public class LockResult
+{
+	public static final int GRANTED;
+	public static final int REFUSED;
+	public static final int RELEASED;
+};
+	
+public class ConflictType
+{
+	public static final int CONFLICT;
+	public static final int COMPATIBLE;
+	public static final int PRESENT;
+};
+	
+public abstract class LockManager extends StateManager
+{
+	public static final int defaultRetry;
+	public static final int defaultTimeout;
+	public static final int waitTotalTimeout;
+	
+	public final synchronized boolean releaselock (Uid lockUid);
+	public final synchronized int setlock (Lock toSet);
+	public final synchronized int setlock (Lock toSet, int retry);
+	public final synchronized int setlock (Lock toSet, int retry, int sleepTime);
+	public void print (PrintStream strm);
+	public String type ();
+	public boolean save_state (OutputObjectState os, int ObjectType);
+	public boolean restore_state (InputObjectState os, int ObjectType);
+	
+	protected LockManager ();
+	protected LockManager (int ot);
+	protected LockManager (int ot, ObjectName attr);
+	protected LockManager (Uid storeUid);
+	protected LockManager (Uid storeUid, int ot);
+	protected LockManager (Uid storeUid, int ot, ObjectName attr);
+	
+	protected void terminate ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>StateManager</title>
+			<para></para> 
+	</formalpara> -->
+	<example>
+		<title>StateManager</title>
+<screen>
+public class ObjectStatus
+{
+	public static final int PASSIVE;
+	public static final int PASSIVE_NEW;
+	public static final int ACTIVE;
+	public static final int ACTIVE_NEW;
+};
+	
+public class ObjectType
+{
+	public static final int RECOVERABLE;
+	public static final int ANDPERSISTENT;
+	public static final int NEITHER;
+};
+	
+public abstract class StateManager
+{
+	public boolean restore_state (InputObjectState os, int ot);
+	public boolean save_state (OutputObjectState os, int ot);
+	public String type ();
+	
+	public synchronized boolean activate ();
+	public synchronized boolean activate (String rootName);
+	public synchronized boolean deactivate ();
+	public synchronized boolean deactivate (String rootName);
+	public synchronized boolean deactivate (String rootName, boolean commit);
+	
+	public synchronized int status ();
+	public final Uid get_uid ();
+	public void destroy ();
+	public void print (PrintStream strm);
+	
+	protected void terminate ();
+	
+	protected StateManager ();
+	protected StateManager (int ot);
+	protected StateManager (int ot, ObjectName objName);
+	protected StateManager (Uid objUid);
+	protected StateManager (Uid objUid, int ot);
+	protected StateManager (Uid objUid, int ot, ObjectName objName);
+	protected synchronized final void modified ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>Input/OutputObjectState</title>
+			<para></para> 
+		</formalpara> -->
+		<example>
+			<title>Input/OutputObjectState</title>
+<screen>
+class OutputObjectState extends OutputBuffer
+{
+	public OutputObjectState (Uid newUid, String typeName);
+	
+	public boolean notempty ();
+	public int size ();
+	public Uid stateUid ();
+	public String type ();
+};
+class InputObjectState extends ObjectState
+{
+	public OutputObjectState (Uid newUid, String typeName, byte[] b);
+	
+	public boolean notempty ();
+	public int size ();
+	public Uid stateUid ();
+	public String type ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>Input/OutputBuffer</title>
+			<para></para>
+	</formalpara> -->
+	<example>
+		<title>Input/OutputBuffer</title>
+<screen>
+public class OutputBuffer
+{
+	public	OutputBuffer ();
+	
+	public final synchronized boolean valid ();
+	public synchronized byte[] buffer();
+	public synchronized int length ();
+	
+	/* pack operations for standard Java types */
+	
+	public synchronized void packByte (byte b) throws IOException;
+	public synchronized void packBytes (byte[] b) throws IOException;
+	public synchronized void packBoolean (boolean b) throws IOException;
+	public synchronized void packChar (char c) throws IOException;
+	public synchronized void packShort (short s) throws IOException;
+	public synchronized void packInt (int i) throws IOException;
+	public synchronized void packLong (long l) throws IOException;
+	public synchronized void packFloat (float f) throws IOException;
+	public synchronized void packDouble (double d) throws IOException;
+	public synchronized void packString (String s) throws IOException;
+};
+public class InputBuffer
+{
+	public	InputBuffer ();
+	
+	public final synchronized boolean valid ();
+	public synchronized byte[] buffer();
+	public synchronized int length ();
+	
+	/* unpack operations for standard Java types */
+	
+	public synchronized byte unpackByte () throws IOException;
+	public synchronized byte[] unpackBytes () throws IOException;
+	public synchronized boolean unpackBoolean () throws IOException;
+	public synchronized char unpackChar () throws IOException;
+	public synchronized short unpackShort () throws IOException;
+	public synchronized int unpackInt () throws IOException;
+	public synchronized long unpackLong () throws IOException;
+	public synchronized float unpackFloat () throws IOException;
+	public synchronized double unpackDouble () throws IOException;
+	public synchronized String unpackString () throws IOException;
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>Uid</title>
+			<para></para> 
+		</formalpara> -->
+	<example>
+		<title>Uid</title>
+<screen>
+public class Uid implements Cloneable
+{
+	public Uid ();
+	public Uid (Uid copyFrom);
+	public Uid (String uidString);
+	public Uid (String uidString, boolean errorsOk);
+	public synchronized void pack (OutputBuffer packInto) throws IOException;
+	public synchronized void unpack (InputBuffer unpackFrom) throws IOException;
+	
+	public void print (PrintStream strm);
+	public String toString ();
+	public Object clone () throws CloneNotSupportedException;
+	public synchronized void copy (Uid toCopy) throws UidException;
+	public boolean equals (Uid u);
+	public boolean notEquals (Uid u);
+	public boolean lessThan (Uid u);
+	public boolean greaterThan (Uid u);
+	
+	public synchronized final boolean valid ();
+	public static synchronized Uid nullUid ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>AtomicAction</title>
+			<para></para> 
+		</formalpara> -->
+	<example>
+		<title>AtomicAction</title>
+<screen>
+public class AtomicAction
+{
+	public AtomicAction ();
+	
+	public void begin () throws SystemException, SubtransactionsUnavailable,
+	NoTransaction;
+	public void commit (boolean report_heuristics) throws SystemException, 
+	NoTransaction, HeuristicMixed,
+	HeuristicHazard,TransactionRolledBack;
+	public void rollback () throws SystemException, NoTransaction;
+	public Control control () throws SystemException, NoTransaction;
+	public Status get_status () throws SystemException;
+	/* Allow action commit to be supressed */    
+	public void rollbackOnly () throws SystemException, NoTransaction;
+	
+	public void registerResource (Resource r) throws SystemException, Inactive;
+	public void registerSubtransactionAwareResource (SubtransactionAwareResource sr)
+	throws SystemException, NotSubtransaction;
+	public void registerSynchronization (Synchronization s) throws SystemException,
+	Inactive;
+};
+</screen>
+</example>
+    </section>
+</appendix>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Appendix_B.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,28 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo>
+	<title>JBoss Transactions Programmers Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is the Enterprise Application Platform edition of the JBoss TS Programmers
+Guide</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/redhat-logo.svg" />
+			</imageobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Book_Info.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,292 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Overview</title>
+    
+    <section>
+        <title>Introduction</title>
+        <para>This chapter contains a description of the use of the <classname>TxCore</classname> transaction engine and the <firstterm>Transactional Objects for Java</firstterm> classes and facilities. The classes mentioned in this chapter are the key to writing fault-tolerant applications using transactions. Thus, after describing them we shall apply them in the construction of a simple application. The classes to be described in this chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and <classname>com.arjuna.ats.arjuna</classname> packages.</para>
+    </section>
+    
+    <section>
+        <title>TxCore – the transaction engine</title>
+        
+        <para>
+            In keeping with the object-oriented view, the mechanisms needed to construct reliable distributed applications are presented to programmers in an object-oriented manner. Some mechanisms need to be inherited, for example, concurrency control and state management; while other mechanisms, such as object storage and transactions, are implemented as <classname>TxCore</classname> objects that are created and manipulated like any other object.
+        </para>
+        
+        <note><para>When the manual talks about using persistence and concurrency control facilities it assumes that the <emphasis>Transactional Objects for Java</emphasis> (TXOJ) classes are being used. If this is not the case then the programmer is responsible for all of these issues.</para></note>
+        
+        <para><classname>TxCore</classname> exploits object-oriented techniques to present programmers with a toolkit of Java classes from which application classes 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.</para>
+        
+        <mediaobject id="figure_1">
+            <imageobject>
+                <imagedata align="center" fileref="images/TXCore_class_hierarchy.png" />
+            </imageobject>
+            <caption> Txcore class hierarchy </caption>
+        </mediaobject>
+        
+        <para>Apart from specifying the scopes of transactions, and setting appropriate locks within objects, the application programmer does not have any other responsibilities: <classname>TxCore</classname> and <emphasis>Transactional Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will be registered with, and be driven by, the appropriate transactions, and crash recovery mechanisms are invoked automatically in the event of failures.</para>
+        
+        <section>
+ 
+             <title>Saving object states</title>
+            
+            <para>
+                <classname>TxCore</classname> needs to be able to remember the state of an object for several purposes, including recovery (the state represents some past state of the object) and persistence (the state represents the final state of an object at application termination). Since these requirements have common functionality they are all implemented using the same mechanism: the classes <classname>InputObjectState</classname> and <classname>OutputObjectState</classname>. The classes maintain an internal array into which instances of the standard types can be contiguously packed (unpacked) using appropriate <command>pack</command> (<command>unpack</command>) operations. This buffer is 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. Any other architecture independent format (such as XDR or ASN.1) could be implemented s!
 imply by replacing the operations with ones appropriate to the encoding required.
+            </para>
+        </section>
+        
+        <section>
+            <title>The object store</title>
+            
+            <para>Implementations of persistence can be affected by restrictions imposed by the Java SecurityManager. Therefore, the object store provided with <classname>TxCore</classname> is implemented using the techniques of interface/implementation. The current distribution has implementations which write object states to the local file system or database, and remote implementations, where the interface uses a client stub (proxy) to remote services.</para>
+            
+            <para>
+                Persistent objects are assigned unique identifiers (instances of the Uid class), when they are created, and this is used to identify them within the object store. States are read using the <literal>read_committed</literal> operation and written by the <literal>write_(un)committed</literal> operations.
+                </para>
+        </section>
+        
+        <section>
+            <title>Recovery and persistence</title>
+            <para>At the root of the class hierarchy is the class <classname>StateManager</classname>. This class is responsible for object activation and deactivation and object recovery. The simplified signature of the class is:</para>
+            
+            <screen>public abstract class StateManager
+{
+    public boolean activate ();
+    public boolean deactivate (boolean commit);
+
+    public Uid get_uid (); // object’s identifier.
+
+    // methods to be provided by a derived class
+
+    public boolean restore_state (InputObjectState os);
+    public boolean save_state (OutputObjectState os);
+
+    protected StateManager ();
+    protected StateManager (Uid id);
+};
+            </screen>
+            
+            <para>Objects are assumed to be of three possible flavours. They may simply be recoverable, in which case <classname>StateManager</classname> will attempt to generate and maintain appropriate recovery information for the object. Such objects have lifetimes that do not exceed the application program that creates them. Objects may be recoverable and persistent, in which case the lifetime of the object is assumed to be greater than that of the creating or accessing application, so that in addition to maintaining recovery information <classname>StateManager</classname> will attempt to automatically load (unload) any existing persistent state for the object by calling the activate (deactivate) 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.</para>
+      
+        
+            <para>If an object is recoverable or recoverable and persistent then <classname>StateManager</classname> will invoke the operations <command>save_state</command> (while performing <command>deactivate</command>), and <command>restore_state</command> (while performing activate) at various points during the execution of the application. These operations must be implemented by the programmer since <classname>StateManager</classname> cannot detect user level state changes. (We are examining the automatic generation of default <command>save_state</command> and <command>restore_state</command> operations, allowing the programmer to override this when application specific knowledge can be used to improve efficiency.) This gives the programmer the ability to decide which parts of an object’s state should be made persistent. For example, for a spreadsheet it may not be necessary to save all entries if some values can simply be recomputed. The <command>save_state</comman!
 d> implementation for a class <classname>Example</classname> that has integer member variables called A, B and C could simply be:</para>
+        
+            <screen>public boolean save_state(OutputObjectState o)
+{
+    if (!super.save_state(o))
+    return false;
+            
+    try
+        {
+            o.packInt(A);
+            o.packInt(B);
+            o.packInt(C));
+        }
+    catch (Exception e)
+        {
+            return false;
+        }
+        
+    return true;
+}                      
+            </screen>
+            
+            <para>Objects are assumed to be of three possible flavours. They may simply be <emphasis>recoverable</emphasis>, in which case <classname>StateManager</classname> will attempt to generate and maintain appropriate recovery information for the object. Such objects have lifetimes that do not exceed the application program that creates them. Objects may be <emphasis>recoverable and persistent</emphasis>, in which case the lifetime of the object is assumed to be greater than that of the creating or accessing application, so that in addition to maintaining recovery information <classname>StateManager</classname> will attempt to automatically load (unload) any existing persistent state for the object by calling the <classname>activate</classname> (<classname>deactivate</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 automat!
 ically attempted.</para>
+            
+            <para>If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable and persistent</emphasis> then <classname>StateManager</classname> will invoke the operations <command>save_state</command> (while performing <command>deactivate</command>), and <command>restore_state</command> (while performing <command>activate</command>) at various points during the execution of the application. These operations must be implemented by the programmer since <classname>StateManager</classname> cannot detect user level state changes. (We are examining the automatic generation of default <classname>save_state</classname> and <classname>restore_state</classname> operations, allowing the programmer to override this when application specific knowledge can be used to improve efficiency.) This gives the programmer the ability to decide which parts of an object’s state should be made persistent. For example, for a spreadsheet it may not be necessary to save all entries if !
 some values can simply be recomputed. The <classname>save_state</classname> implementation for a class <classname>Example</classname> that has integer member variables called A, B and C could simply be:</para>
+            
+            <screen>public boolean save_state(OutputObjectState o)
+{
+    if (!super.save_state(o))
+    return false;
+            
+    try
+    {
+        o.packInt(A);
+        o.packInt(B);
+        o.packInt(C));
+    }
+    catch (Exception e)
+    {
+        return false;
+    }
+                
+return true;
+}
+            </screen>
+            <note><para>It is necessary for all <command>save_state</command> and <command>restore_state</command> methods to call <classname>super.save_state </classname>and <classname>super.restore_state</classname>. This is to cater for improvements in the crash recovery mechanisms.</para></note>
+        </section>
+        
+        <section>
+            <title>The life-cycle of a Transactional Object for Java </title>
+            
+            <para>A persistent object not in use is assumed to be held in a <emphasis>passive</emphasis> state with its state residing in an object store and <emphasis>activated</emphasis> on demand. The fundamental life cycle of a persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="figure_2"/>.</para>
+            
+            <mediaobject id="figure_2">
+                <imageobject>
+			<imagedata align="center" fileref="images/Persistent_Object_Lifecycle.png" />
+                </imageobject>
+                <caption> The lifecycle of a persistent object. </caption>
+            </mediaobject>
+            
+            <itemizedlist>
+                <listitem><para>The object is initially passive, and is stored in the object store as an instance of the class <classname>OutputObjectState</classname>.</para></listitem>
+                <listitem><para>When required by an application the object is automatically activated by reading it from the store using a <command>read_committed</command> operation and is then converted from an <classname>InputObjectState</classname> instance into a fully-fledged object by the <command>restore_state</command> operation of the object.</para></listitem>
+                <listitem><para>When the application has finished with the object it is deactivated by converting it back into an <classname>OutputObjectState</classname> instance using the <command>save_state</command> operation, and is then stored back into the object store as a shadow copy using write_uncommitted. This shadow copy can be committed, overwriting the previous version, using the <command>commit_state</command> operation. The existence of shadow copies is 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.</para></listitem>
+            </itemizedlist>
+            
+            <note><para>During its life time, a persistent object may be made active then passive many times.</para></note>
+         
+        </section>
+        
+        <section>
+            <title>The concurrency controller</title>
+            
+            <para>The concurrency controller is implemented by the class <classname>LockManager</classname> which provides sensible default behaviour while allowing the programmer to override it if deemed necessary by the particular semantics of the class being programmed. As with <classname>StateManager</classname> and persistence, concurrency control implementations are accessed through interfaces. As well as providing access to remote services, the current implementations of concurrency control available to interfaces include:</para>
+            
+            <itemizedlist>
+                <listitem><para>local disk/database implementation, where locks are made persistent by being written to the local file system or database.</para></listitem>
+                <listitem><para>a purely local implementation, where locks are maintained within the memory of the virtual machine which created them; this implementation has better 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</para></listitem>
+            </itemizedlist>
+            
+            <para>The primary programmer interface to the concurrency controller is via the setlock operation. By default, the runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. However, as shown in <xref linkend="figure_1"/>, by inheriting from 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>.</para>
+            
+            <para>Lock acquisition is (of necessity) under programmer control, since just as <classname>StateManager</classname> cannot determine if an operation modifies an object, <classname>LockManager</classname> cannot determine if an operation requires a read or write lock. Lock release, however, is under control of the system and requires no further intervention by the programmer. This ensures that the two-phase property can be correctly maintained.</para>
+            
+            <screen>public abstract class LockManager extends StateManager
+{
+    public LockResult setlock (Lock toSet, int retry, int timeout);
+};</screen>
+            
+            <para>The <classname>LockManager</classname> class is primarily responsible for managing requests to set a lock on an object or to release a lock as appropriate. However, since it is derived from <classname>StateManager</classname>, it can also control when some of the inherited facilities are invoked. For example, <classname>LockManager</classname> assumes that the setting of a write lock implies that the invoking operation must be about to modify the object. This may in turn cause recovery information to be saved if the object is recoverable. In a similar fashion, successful lock acquisition causes activate to be invoked.</para>
+            
+            <para>The code below shows how we may try to obtain a write lock on an object:</para>
+            
+            <screen>public class Example extends LockManager
+{
+public boolean foobar ()
+{
+    AtomicAction A = new AtomicAction;
+    boolean result = false;
+        
+    A.begin();
+        
+    if (setlock(new Lock(LockMode.WRITE), 0) == Lock.GRANTED)
+    {
+        /*
+        * Do some work, and TXOJ will
+        * guarantee ACID properties.
+        */
+        
+        // automatically aborts if fails
+        
+        if (A.commit() == AtomicAction.COMMITTED)
+        {
+            result = true;
+        }
+    }
+    else
+        A.rollback();
+            
+    return result;
+}
+}</screen>
+            
+        </section>
+        
+        <section>
+            <title>The transaction protocol engine</title>
+            
+            <para>The transaction protocol engine is represented by the <classname>AtomicAction</classname> class, which uses <classname>StateManager</classname> in order to record sufficient information for crash recovery mechanisms to complete the transaction in the event of failures. It has methods for starting and terminating the transaction, and, for those situations where programmers require to implement their own resources, methods for registering them with the current 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.</para>
+            
+            <note><para><emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread within an application to share a transaction or execute within its own transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also thread safe.</para></note>
+        </section>
+        
+        <section>
+            <title>Example</title>
+            
+            <para>The simple example below illustrates the relationships between activation, termination and commitment:</para>
+            
+            <screen>{
+    . . .
+    O1 objct1 = new objct1(Name-A);/* (i) bind to "old" persistent object A */
+    O2 objct2 = new objct2();	 /* create a "new" persistent object */
+    OTS.current().begin();		 /* (ii) start of atomic action */
+    
+    objct1.op(...);		      /* (iii) object activation and invocations */
+    objct2.op(...);
+    . . .
+    OTS.current().commit(true); 	/* (iv) tx commits &amp; objects deactivated */
+    } 					/* (v) */</screen>
+            
+            <para>The execution of the above code involves the following sequence of activities:</para>
+            
+            <itemizedlist>
+                <listitem><para>Creation of bindings to persistent objects; this could involve the creation of stub objects and a call to remote objects. In the above example we re-bind to an existing persistent object identified by <literal>Name-A</literal>, and a new persistent object. A naming system for remote objects maintains the mapping between object names and locations and is described in a later chapter.</para></listitem>
+                <listitem><para>Start of the atomic transaction.</para></listitem>
+                <listitem><para>Operation invocations: as a part of a given invocation the object implementation is responsible to ensure that it is locked in read or write mode (assuming no lock conflict), and initialised, if necessary, with the 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.</para></listitem>
+                <listitem><para>Commit of the top-level action. This includes updating of the state of any modified objects in the object store.</para></listitem>
+                <listitem><para>Breaking of the previously created bindings.</para></listitem>
+            </itemizedlist>
+            
+        </section>
+        
+        <section>
+            <title>The class hierarchy</title>
+            
+            <para>The principal classes which make up the class hierarchy of <emphasis>TxCore</emphasis> are depicted below.</para>
+            
+            <screen>StateManager		// Basic naming, persistence and recovery control
+                LockManager		// Basic two-phase locking concurrency control service
+                User-Defined Classes
+                Lock			// Standard lock type for multiple readers/single writer
+                User-Defined Lock Classes
+                AbstractRecord		// Important utility class, similar to Resource
+                    RecoveryRecord	            // handles object recovery
+                    LockRecord		// handles object locking
+                    RecordList		// Intentions list
+                    other management record types
+                AtomicAction		// Implements transaction control abstraction
+                    TopLevelTransaction
+                Input/OutputBuffer // Architecture neutral representation of an objects’ state
+                    Input/OutputObjectState	// Convenient interface to Buffer
+                ObjectStore			// Interface to the object storage services</screen>
+            
+            <para>Programmers of fault-tolerant applications will be primarily concerned with the classes <classname>LockManager</classname>, <classname>Lock</classname> and <classname>AtomicAction</classname>. Other classes important to a programmer are <classname>Uid</classname>, and <classname>ObjectState</classname>. Most <emphasis>TxCore</emphasis> classes are derived from the base class <classname>StateManager</classname>, which provides primitive facilities necessary for managing persistent and recoverable objects. These facilities include support for the activation and de-activation of objects, and state-based object recovery. The class <classname>LockManager</classname> uses the facilities of <classname>StateManager</classname> and <classname>Lock</classname> to provide the concurrency control (two-phase locking in the current implementation) required for implementing the serialisability property of atomic actions. The implementation of atomic action facilities is !
 supported by <classname>AtomicAction</classname> and <classname>TopLevelTransaction</classname>.</para>
+            
+            <para>Most <emphasis>TxCore</emphasis> system classes are derived from the base class <classname>StateManager</classname>, which provides primitive facilities necessary for managing persistent and recoverable objects. These facilities include support for the activation and de-activation of objects, and state-based object recovery. The class <classname>LockManager</classname> uses the facilities of <classname>StateManager</classname> and provides the concurrency control required for implementing the serialisability property of atomic actions.</para>
+            
+            <para>Consider a simple example. Assume that <classname>Example</classname> is a user-defined persistent class suitably derived from the <classname>LockManager</classname>. An application containing an atomic transaction Trans accesses an object (called O) of type <classname>Example</classname> by invoking the operation op1 which involves state changes to O. The serialisability property requires that a write lock must be acquired on O before it is modified; thus the body of op1 should contain a call to the <literal>setlock</literal> operation of the concurrency controller:</para>
+            
+            <screen>public boolean op1 (...)
+{	
+    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)
+    {
+        // actual state change operations follow 
+        ...
+    }
+}</screen>
+            
+            <para>The operation <literal>setlock</literal>, provided by the <classname>LockManager</classname> class, performs the following functions in this case:</para>
+            
+            <itemizedlist>
+                <listitem><para>Check write lock compatibility with the currently held locks, and if allowed:</para></listitem>
+                <listitem><para>Call the <classname>StateManager</classname> operation activate that will load, if not done already, the latest persistent state of O from the object store. Then call the <classname>StateManager</classname> operation modified which has the effect of creating an instance of either <classname>RecoveryRecord</classname> or <classname>PersistenceRecord</classname> for O depending upon whether O was persistent or not (the Lock is a <literal>WRITE</literal> lock so the old state of the object must be retained prior to modification) and inserting it into the <classname>RecordList</classname> of <classname>Trans</classname>.</para></listitem>
+                <listitem><para>Create and insert a LockRecord instance in the RecordList of Trans.</para></listitem>
+            </itemizedlist>
+            
+            <para>Now suppose that action <literal>Trans</literal> is aborted sometime after the lock has been acquired. Then the rollback operation of <classname>AtomicAction</classname> will process the <classname>RecordList</classname> instance associated with <literal>Trans</literal> by invoking an appropriate <literal>Abort</literal> operation on the various records. The implementation of this operation by the <classname>LockRecord</classname> class will release the <literal>WRITE</literal> lock while that of <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</classname>  will restore the prior state of O.</para>
+            
+            <para>It is important to realise that all of the above work is automatically being performed by <emphasis>TxCore</emphasis> on behalf of the application programmer. The programmer need only start the transaction and set an appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional Objects for Java</emphasis> take care of participant registration, persistence, concurrency control and recovery.</para>
+            
+        </section>
+        
+        
+        
+    </section>
+    
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_02.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_02.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_02.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,652 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Using TxCore</title>
+    
+    <section>
+        <title>Introduction</title>
+        
+        <para>In this section we shall describe <emphasis>TxCore</emphasis> and <emphasis>Transactional Objects for Java</emphasis> in more detail, and show how it can be used to construct transactional applications.</para>
+    </section>
+    
+    <section>
+        <title>State management</title>
+        
+        <section>
+            <title>Object States</title>
+            
+            <para><emphasis>TxCore</emphasis> needs to be able to remember the state of an object for several purposes, including recovery (the state represents some past state of the object), and for persistence (the state represents the final state of an object at application termination). Since all of these requirements require common functionality they are all implemented using the same mechanism - the classes <classname>Input/OutputObjectState</classname> and <classname>Input/OutputBuffer</classname>.</para>
+            
+            <formalpara><title>OutputBuffer</title>
+                
+                <para><programlisting>public class OutputBuffer
+{
+public OutputBuffer ();
+
+public final synchronized boolean valid ();
+public synchronized byte[] buffer();
+public synchronized int length ();
+
+    /* pack operations for standard Java types */
+
+public synchronized void packByte (byte b) throws IOException;
+public synchronized void packBytes (byte[] b) throws IOException;
+public synchronized void packBoolean (boolean b) throws IOException;
+public synchronized void packChar (char c) throws IOException;
+public synchronized void packShort (short s) throws IOException;
+public synchronized void packInt (int i) throws IOException;
+public synchronized void packLong (long l) throws IOException;
+public synchronized void packFloat (float f) throws IOException;
+public synchronized void packDouble (double d) throws IOException;
+public synchronized void packString (String s) throws IOException;
+};</programlisting></para></formalpara>
+            
+            <formalpara><title>InputBuffer</title><para><programlisting>public class InputBuffer
+{
+public InputBuffer ();
+
+public final synchronized boolean valid ();
+public synchronized byte[] buffer();
+public synchronized int length ();
+
+/* unpack operations for standard Java types */
+
+public synchronized byte unpackByte () throws IOException;
+public synchronized byte[] unpackBytes () throws IOException;
+public synchronized boolean unpackBoolean () throws IOException;
+public synchronized char unpackChar () throws IOException;
+public synchronized short unpackShort () throws IOException;
+public synchronized int unpackInt () throws IOException;
+public synchronized long unpackLong () throws IOException;
+public synchronized float unpackFloat () throws IOException;
+public synchronized double unpackDouble () throws IOException;
+public synchronized String unpackString () throws IOException;
+};</programlisting></para></formalpara>
+            
+            <para>The <classname>Input/OutputBuffer</classname> class maintains an internal array into which instances of the standard Java types can be contiguously packed (unpacked) using the pack (unpack) operations. This buffer is 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.</para>
+
+            <formalpara><title>OutputObjectState</title>
+                
+                <para><programlisting>class OutputObjectState extends OutputBuffer
+{
+public OutputObjectState (Uid newUid, String typeName);
+
+public boolean notempty ();
+public int size ();
+public Uidpublic class InputBuffer
+{
+public InputBuffer ();
+
+public final synchronized boolean valid ();
+public synchronized byte[] buffer();
+public synchronized int length ();
+
+/* unpack operations for standard Java types */
+
+public synchronized byte unpackByte () throws IOException;
+public synchronized byte[] unpackBytes () throws IOException;
+public synchronized boolean unpackBoolean () throws IOException;
+public synchronized char unpackChar () throws IOException;
+public synchronized short unpackShort () throws IOException;
+public synchronized int unpackInt () throws IOException;
+public synchronized long unpackLong () throws IOException;
+public synchronized float unpackFloat () throws IOException;
+public synchronized double unpackDouble () throws IOException;
+public synchronized String unpackString () throws IOException;
+};</programlisting></para></formalpara>
+            
+            <para>The <classname>Input/OutputBuffer</classname> class maintains an internal array into which instances of the standard Java types can be contiguously packed (unpacked) using the pack (unpack) operations. This buffer is 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.</para>
+            
+            <formalpara>
+                <title>
+                    OutputObjectState   
+                </title>
+                
+                <para>
+                    <programlisting>class OutputObjectState extends OutputBuffer
+{
+    public OutputObjectState (Uid newUid, String typeName);
+    
+    public boolean notempty ();
+    public int size ();
+    public Uid stateUid ();
+    public String type ();
+};</programlisting>
+                    </para>
+                    
+            </formalpara>
+            
+            
+            <formalpara>
+                <title>InputObjectState</title>
+                <para>
+                    <programlisting>class InputObjectState extends InputBuffer
+{
+    public OutputObjectState (Uid newUid, String typeName, byte[] b);
+    
+    public boolean notempty ();
+    public int size ();
+    public Uid stateUid ();
+    public String type ();
+};</programlisting>   
+                </para>
+            </formalpara>
+           
+            
+            <para>The class <classname>Input/OutputObjectState</classname> provides all the functionality of <classname>Input/OutputBuffer</classname> (through inheritance) but adds two additional instance variables that signify the Uid and type of the object for which the <classname>Input/OutputObjectState</classname> instance is a compressed image. These are used when accessing the object store during storage and retrieval of the object state.</para>
+    </section>
+    
+    <section>
+        <title>The object store</title>
+        
+        <para>The object store provided with <emphasis>TxCore</emphasis> deliberately has a fairly restricted interface so that it can be implemented in a variety of ways. For example, object stores are implemented in shared memory; on the 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.</para>
+        
+        <note><para>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.</para></note>
+        
+        <para>All of the object stores hold and retrieve instances of the class <classname>Input/OutputObjectState</classname>. These instances are named by the Uid and Type of the object that they represent. States are read using the <command>read_committed</command> operation and written by the system using the <command>write_uncommitted</command> operation. Under normal operation new object states do not overwrite old object states but are written to the store as shadow copies. These shadows replace the original only when the <command>commit_state</command> operation is invoked. Normally all interaction with the object store is performed by <emphasis>TxCore</emphasis> system components as appropriate thus the existence of any shadow versions of objects in the store are hidden from the programmer.</para>
+        
+        <screen>public class ObjectStore
+{
+public static final int OS_COMMITTED;
+public static final int OS_UNCOMMITTED;
+public static final int OS_COMMITTED_HIDDEN;
+public static final int OS_UNCOMMITTED_HIDDEN;
+public static final int OS_UNKNOWN;
+
+/* The abstract interface */
+public abstract boolean commit_state (Uid u, String name)
+throws ObjectStoreException;
+public abstract InputObjectState read_committed (Uid u, String name)
+throws ObjectStoreException;
+public abstract boolean write_uncommitted (Uid u, String name,
+OutputObjectState os) throws ObjectStoreException;
+. . .
+};</screen>
+        
+        <para>When a transactional object is committing it is necessary for it to make certain state changes persistent in order that it can recover in the event of a failure and either continue to commit, or rollback. When using <emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</emphasis> will take care of this automatically. To guarantee ACID properties, these state changes must be flushed to the persistence store implementation before the transaction can proceed to commit; if they are not, the application may assume that the transaction has committed when in fact the state changes may still reside within an operating system cache, and may be lost by a subsequent machine failure. By default, <emphasis>TxCore</emphasis> ensures that such state changes are flushed. However, doing so can impose a significant performance penalty on the application. To prevent transactional object state flushes, set the <literal>com.arjuna.ats.arjuna.objectstore.objectStore!
 Sync</literal> variable to OFF.</para>
+        
+    </section>
+        
+        <section><title>Selecting an object store implementation</title>
+        
+        <para>
+            <emphasis>TxCore</emphasis> comes with support for several different object store implementations. The Appendix describes these implementations, how to select and configure a given implementation (using the <literal>com.arjuna.ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per object basis, and indicates how additional implementations can be provided.
+        </para>
+        
+        </section>
+        
+        <section>
+            
+            <title>StateManager</title>
+        
+            <para>The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> manages the state of an object and provides all of the basic support mechanisms required by an object for state management purposes. <classname>StateManager</classname> is responsible for creating and registering appropriate resources concerned with the persistence and recovery of the transactional object. If a transaction is nested, then <classname>StateManager</classname> will also propagate these resources between child transactions and their parents at commit time.</para>
+        
+        <para>
+            Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible basic flavours. They may simply be recoverable, in which case <classname>StateManager</classname> will attempt to generate and maintain appropriate recovery information for the object (as instances of the class <classname>Input/OutputObjectState</classname>) . Such objects have lifetimes that do not exceed the application program that creates them. Objects may be recoverable and persistent, in which case the lifetime of the object is assumed to be greater than that of the creating or accessing application so that in addition to maintaining recovery information <classname>StateManager</classname> will attempt to automatically load (unload) any existing persistent state for the object by calling the <command>activate</command> (<command>deactivate</command>) 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. This object property is selected 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.
+        </para>
+            
+            <screen>public class ObjectStatus
+{
+    public static final int PASSIVE;
+    public static final int PASSIVE_NEW;
+    public static final int ACTIVE;
+    public static final int ACTIVE_NEW;
+    public static final int UNKNOWN_STATUS;
+};
+
+public class ObjectType
+{
+    public static final int RECOVERABLE;
+    public static final int ANDPERSISTENT;
+    public static final int NEITHER;
+};
+
+public abstract class StateManager
+{
+    public synchronized boolean activate ();
+    public synchronized boolean activate (String storeRoot);
+    public synchronized boolean deactivate ();
+    public synchronized boolean deactivate (String storeRoot, boolean commit);
+    
+    public synchronized void destroy ();
+    
+    public final Uid get_uid ();
+    
+    public boolean restore_state (InputObjectState, int ObjectType);
+    public boolean save_state (OutputObjectState, int ObjectType);
+    public String type ();
+    . . .
+    
+    protected StateManager ();
+    protected StateManager (int ObjectType, ObjectName attr);
+    protected StateManager (Uid uid);
+    protected StateManager (Uid uid, ObjectName attr);
+    . . .
+    
+    protected final void modified ();
+    . . .
+};
+
+public class ObjectModel
+{
+    public static final int SINGLE;
+    public static final int MULTIPLE;
+};</screen>
+            
+            <para>If an object is recoverable (or persistent) then <classname>StateManager</classname> will invoke the operations <command>save_state</command> (while performing <command>deactivation</command>), <command>restore_state</command> (while performing activate) and type at various points during the execution of the application. These operations must be implemented by the programmer since <classname>StateManager</classname> does not have access to a runtime description of the layout of an arbitrary Java object in memory and thus cannot implement a default policy for converting the in memory version of the object to its passive form. However, the capabilities provided by <classname>Input/OutputObjectState</classname> make the writing of these routines fairly simple. For example, the <command>save_state</command> implementation for a class <classname>Example</classname> that had member variables called A, B and C could simply be the following:</para>
+            
+            <screen>public boolean save_state ( OutputObjectState os, int ObjectType )
+{
+    if (!super.save_state(os, ObjectType))
+    return false;
+    
+    try
+    {
+        os.packInt(A);
+        os.packString(B);
+        os.packFloat(C);
+    
+        return true;
+    }
+    catch (IOException e)
+    {
+        return false;
+    }
+}</screen>
+            
+            <para>In order to support crash recovery for persistent objects it is necessary 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>.</para>
+            
+            <note><para>The type method is used to determine the location in the object store where the state of instances of that class will be saved and ultimately restored. 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.</para></note>
+            
+            <para>The <command>get_uid</command> operation of <classname>StateManager</classname> provides read only access to an object’s internal system name for whatever purpose the programmer requires (such as registration of the name in a name server). The value of the internal system name can only be set when an object is initially constructed - either by the provision of an explicit parameter or by generating a new identifier when the object is created.</para>
+            
+            <para>The <command>destroy</command> method can be used to remove the object’s state from the object store. This is an atomic operation, and therefore will 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.</para>
+            
+            <para>Since object recovery and persistence essentially have complimentary requirements (the only difference being where state information is stored and for what purpose) <classname>StateManager</classname> effectively combines the management of these two properties into a single mechanism. That is, it uses instances of the class Input/OutputObjectState both for recovery and persistence purposes. An additional argument passed to the <command>save_state</command> and <command>restore_state</command> 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.</para>
+            
+            
+        </section>
+        
+        <section>
+            <title>Object Models</title>
+            
+            <para><emphasis>TxCore</emphasis> supports two models for objects, which as we shall show affect how an objects state and concurrency control are implemented:</para>
+            
+            <itemizedlist>
+                <listitem><para><termdef>SINGLE</termdef>: only a single copy of the object exists within the application; this will reside within a single JVM, and all clients must address their invocations to this server. This model provides better 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.</para>
+                
+                    <mediaobject id="figure_3">
+                        <imageobject>
+                            <imagedata align="center" fileref="images/Single_Object.png" />
+                        </imageobject>
+                        <caption> Single Object Model</caption>
+                    </mediaobject>
+                
+                </listitem>
+                <listitem><para>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.</para>
+                
+                
+                    <mediaobject id="figure_4">
+                        <imageobject>
+                            <imagedata align="center" fileref="images/Multiple_Object.png" />
+                        </imageobject>
+                        <caption> Multiple Object Model</caption>
+                    </mediaobject>
+                </listitem>
+            </itemizedlist>
+            
+            <para>The default model is SINGLE. The programmer can override this on a per object basis by providing an appropriate instance of the <classname>com.arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object construction.</para>
+            
+            <note><para>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.</para></note>
+            
+            <para>
+                To provide a suitable <classname>ObjectName</classname> class, it is necessary to perform the following steps:
+            </para>
+            
+            <itemizedlist>
+                <listitem><para>create a new instance of <classname>ObjectName</classname>.</para></listitem>
+                <listitem><para>set the object model attribute using the <literal>com.arjuna.ats.arjuna.ArjunaNames.StateManager_objectModel()</literal> name.</para></listitem>
+            </itemizedlist>
+            
+            <para>For example:</para>
+            
+            <programlisting>{
+    ObjectName attr = new ObjectName(“SNS:myObjectName”);
+    
+    attr.setLongAttribute(ArjunaNames.StateManager_objectModel(),
+    ObjectModel.SINGLE);
+    
+    AtomicObject obj = new AtomicObject(ObjectType.ANDPERSISTENT, attr);
+                }</programlisting>
+            
+            
+            
+        </section>
+        
+        <section>
+            <title>Summary</title>
+            
+            <para>In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</classname> manages the state of an object and provides all of the basic support mechanisms required by an object for state management purposes. Some operations must be defined by the class developer. These operations are: <command>save_state</command>, <command>restore_state</command>, and <command>type</command>.</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term><literal>boolean save_state (OutputObjectState state, int ObjectType)</literal></term>
+                    <listitem><para>Invoked whenever the state of an object might need to be saved for future use - primarily for recovery or persistence purposes. The <literal>ObjectType</literal> parameter indicates the reason that <command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. This enables the programmer to save different pieces of information into the <classname>OutputObjectState</classname> supplied as the first parameter depending upon whether the state is needed for recovery or persistence purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects might be saved simply as pointers for recovery purposes but as Uid’s for persistence purposes. As shown earlier, the <classname>OutputObjectState</classname> class provides convenient operations to allow the saving of instances of all of the basic types in Java. In order to support crash recovery for persistent objects it is necessary for all <command>save_state</command> metho!
 ds to call <command>super.save_state</command>.</para>
+                    
+                        <note><para><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.</para></note></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><literal>boolean restore_state (InputObjectState state, int ObjectType)</literal></term>
+                    <listitem><para>Invoked whenever the state of an object needs to be restored to the one supplied. Once again the second parameter allows different interpretations 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>.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><literal>String type ()</literal></term>
+                    <listitem><para>The <emphasis>TxCore</emphasis> persistence mechanism requires a means of determining the type of an object as a string so that it can save/restore the state of the object into/from the object store. By convention this information indicates the position of the class in the hierarchy. For example, “/<classname>StateManager</classname>/<classname>LockManager</classname>/<classname>Object</classname>”.</para>
+                    
+                        <note><para>The type method is used to determine the location in the object store where the state of instances of that class will be saved and ultimately restored. 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.</para></note></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            
+        </section>
+        
+        <section>
+            <title>Example</title>
+            
+            <para>
+                Consider the following basic <classname>Array</classname> class derived from the <classname>StateManager</classname> class (in this example, to 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):
+            </para>
+            
+            <programlisting>public class Array extends StateManager
+{
+    public Array ();
+    public Array (Uid objUid);
+    public void finalize ( super.terminate(); };
+    
+    /* Class specific operations. */
+    
+    public boolean set (int index, int value);
+    public int get (int index);
+    
+    /* State management specific operations. */
+    
+    public boolean save_state (OutputObjectState os, int ObjectType);
+    public boolean restore_state (InputObjectState os, int ObjectType);
+    public String type ();
+    
+    public static final int ARRAY_SIZE = 10;
+    
+    private int[] elements = new int[ARRAY_SIZE];
+    private int highestIndex;
+    };</programlisting>
+            
+            <para>
+                The <command>save_state</command>, <command>restore_state</command> and <command>type</command> operations can be defined as follows:
+            </para>
+            
+            <programlisting>/* Ignore ObjectType parameter for simplicity */
+
+public boolean save_state (OutputObjectState os, int ObjectType)
+{
+    if (!super.save_state(os, ObjectType))
+        return false;
+    
+    try
+    {    
+        packInt(highestIndex);
+
+        /*
+        * Traverse array state that we wish to save. Only save active elements
+        */
+
+        for (int i = 0; i &lt;= highestIndex; i++)
+            os.packInt(elements[i]);
+            
+        return true;
+    }
+    catch (IOException e)
+    {
+        return false;
+    }
+}
+ 
+public boolean restore_state (InputObjectState os, int ObjectType)
+{
+    if (!super.restore_state(os, ObjectType))
+        return false;
+    
+    try
+    {
+        int i = 0;
+    
+        highestIndex = os.unpackInt();
+    
+        while (i &lt; ARRAY_SIZE)
+        {
+            if (i &lt;= highestIndex)
+                elements[i] =  os.unpackInt();
+            else
+                elements[i] = 0;
+            i++;
+        }
+        
+        return true;
+        }
+    catch (IOException e)
+    {
+        return false;
+    }
+}
+ 
+public String type ()
+{
+    return "/StateManager/Array";
+}</programlisting>
+        </section>
+    </section>
+    
+    <section>
+        <title>Lock management and concurrency control</title>
+        
+        <para>Concurrency control information within <emphasis>TxCore</emphasis> is maintained by locks. Locks which are required to be shared between objects in different processes may be held within a lock store, similar to the object store facility presented previously. The lock store provided with <emphasis>TxCore</emphasis> deliberately has a fairly restricted interface so that it can be implemented in a variety of ways. For example, lock stores are implemented in shared memory; on the Unix file system (in several 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.</para>
+        
+        <note><para>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.</para></note>
+        
+        <programlisting>public class LockStore
+{
+    public abstract InputObjectState read_state (Uid u, String tName)
+    throws LockStoreException;
+    
+    public abstract boolean remove_state (Uid u, String tname);
+    public abstract boolean write_committed (Uid u, String tName,
+    OutputObjectState state);
+    };</programlisting>
+        
+        <section>
+            <title>Selecting a lock store implementation</title>
+            
+            <para><emphasis>TxCore</emphasis> comes with support for several different object store implementations. If the object model being used is SINGLE, then no lock store is required for maintaining locks, since the information about the object is not exported from it. However, if the MULTIPLE model is used, then different run-time environments (processes, Java virtual machines) may need to share concurrency control information. The implementation type of the lock store to use can be specified for all objects within a given execution environment using the <literal>com.arjuna.ats.txoj.lockstore.lockStoreType</literal> property variable. Currently this can have one of the following values:</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term>BasicLockStore</term>
+                    <listitem><para>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.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>BasicPersistentLockStore</term>
+                    <listitem><para>This is the default implementation, and stores locking information within the local file system. Therefore execution environments that share the same file store can share concurrency control information. The root of the file system into which locking information is written is the <filename>LockStore</filename> directory within the <emphasis>TxCore</emphasis> installation directory. This can be overridden at runtime by setting the <literal>com.arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable accordingly, or placing the location within the <literal>CLASSPATH</literal>:</para>
+                    
+                        <para><command>java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore myprogram</command></para>
+                    
+                    <para>or</para>
+                    
+                        <para><command>java –classpath $CLASSPATH;/var/tmp/LockStore myprogram</command></para>
+                    
+                        <para>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.</para></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            
+            
+        </section>
+        
+        <section>
+            <title>LockManager</title>
+            
+            <para>The concurrency controller is implemented by the class <classname>LockManager</classname> which provides sensible default behaviour while allowing the programmer to override it if deemed necessary by the particular semantics of the class being programmed. The primary programmer interface to the concurrency controller is via the setlock operation. By default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. Lock acquisition is under programmer control, since just as <classname>StateManager</classname> cannot determine if an operation modifies an object, <classname>LockManager</classname> cannot determine if an operation requires a read or write lock. Lock release, however, is 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. </para>
+            
+            <para>The <classname>LockManager</classname> class is primarily responsible for managing requests to set a lock on an object or to release a lock as appropriate. However, since it is derived from <classname>StateManager</classname>, it can also control when some of the inherited facilities are invoked. For example, if a request to set a write lock is granted, then <classname>LockManager</classname> invokes modified directly assuming that the setting of a write lock implies that the invoking operation must be about to modify the object. This may in turn cause recovery information to be saved if the object is recoverable. In a similar fashion, successful lock acquisition causes <command>activate</command> to be invoked.</para>
+        
+            <para>Therefore, <classname>LockManager</classname> is directly responsible for activating/de-activating persistent objects, and registering <classname>Resources</classname> for managing concurrency control. By driving the <classname>StateManager</classname> class, it is also responsible for registering <classname>Resources</classname> for persistent/recoverable state manipulation and object recovery. The application programmer simply sets appropriate locks, starts and ends transactions, and extends the <command>save_state</command> and <command>restore_state</command> methods of <classname>StateManager</classname>.</para>
+            
+            <programlisting>public class LockResult
+{
+public static final int GRANTED;
+public static final int REFUSED;
+public static final int RELEASED;
+};
+
+public class ConflictType
+{
+public static final int CONFLICT;
+public static final int COMPATIBLE;
+public static final int PRESENT;
+};
+
+public abstract class LockManager extends StateManager
+{
+public static final int defaultTimeout;
+public static final int defaultRetry;
+public static final int waitTotalTimeout;
+
+public synchronized int setlock (Lock l);
+public synchronized int setlock (Lock l, int retry);
+public synchronized int setlock (Lock l, int retry, int sleepTime);
+public synchronized boolean releaselock (Uid uid);
+
+/* abstract methods inherited from StateManager */
+
+public boolean restore_state (InputObjectState os, int ObjectType);
+public boolean save_state (OutputObjectState os, int ObjectType);
+public String type ();
+
+protected LockManager ();
+protected LockManager (int ObjectType, ObjectName attr);
+protected LockManager (Uid storeUid);
+protected LockManager (Uid storeUid, int ObjectType, ObjectName attr);
+. . .
+};</programlisting>
+            
+            <para>The <command>setlock</command> operation must be parameterised with the type 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:</para>
+            
+            <para>
+                If the retry value is equal to <literal>LockManager.waitTotalTimeout</literal>, then the thread which called <command>setlock</command> will be blocked until the lock is released, or the total timeout specified has elapsed, and in which <literal>REFUSED</literal> will be returned.
+            </para>
+            
+            <para>If the lock cannot be obtained initially then <classname>LockManager</classname> will try for the specified number of retries, waiting for the specified timeout value between each failed attempt. The default is 100 attempts, each attempt being separated by a 0.25 seconds delay; the time between retries is specified in micro-seconds.</para>
+            
+            <para>If a lock conflict occurs the current implementation simply times out lock requests, thereby preventing deadlocks, rather than providing a full deadlock detection scheme. If the requested lock is obtained, the setlock operation will return the value <literal>GRANTED</literal>, otherwise the value <literal>REFUSED</literal> is returned. It is the responsibility of 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.</para>
+            
+            <programlisting>res = setlock(new Lock(WRITE), 10);	
+    // Will attempt to set a
+    // write lock 11 times (10
+    // retries) on the object
+    // before giving up.
+                
+res = setlock(new Lock(READ), 0);	
+    // Will attempt to set a read
+    // lock 1 time (no retries) on
+    // the object before giving up.
+    
+res = setlock(new Lock(WRITE);	
+    // Will attempt to set a write
+    // lock 101 times (default of
+    // 100 retries) on the object
+    // before giving up.</programlisting>
+
+            <para>The concurrency control mechanism is integrated into the atomic action mechanism, thus ensuring that as locks are granted on an object appropriate information is registered with the currently running atomic action to ensure that the locks are released at the correct time. This frees the programmer from the burden of explicitly freeing any acquired locks if they were acquired within atomic actions. However, if locks are acquired on an object <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.</para>        
+            
+            </section>
+                
+                <section>
+                    <title>Locking policy</title>
+                    
+                    <para>Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not special system types. Instead they are simply instances of other <emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> which is also derived from <classname>StateManager</classname> so that locks may be made persistent if required and can also be named in a simple fashion). Furthermore, <classname>LockManager</classname> deliberately has no knowledge of the semantics of the actual policy by which lock requests are granted.  Such information is maintained by the actual <classname>Lock</classname> class instances which provide operations (the <literal>conflictsWith</literal> operation) by which <classname>LockManager</classname> can determine if two locks conflict or not. This separation is important in that it allows the programmer to derive new lock types from the basic <classname>Lock</classname> class and by providing appropriate definitions of the confli!
 ct operations enhanced levels of concurrency may be possible.</para>
+                    
+                    <programlisting>public class LockMode
+{
+    public static final int READ;
+    public static final int WRITE;
+};
+
+public class LockStatus
+{
+    public static final int LOCKFREE;
+    public static final int LOCKHELD;
+    public static final int LOCKRETAINED;
+};
+
+public class Lock extends StateManager
+{
+    public Lock (int lockMode);
+    
+    public boolean conflictsWith  (Lock otherLock);
+    public boolean modifiesObject ();
+    
+    public boolean restore_state (InputObjectState os, int ObjectType);
+    public boolean save_state (OutputObjectState os, int ObjectType);
+    public String type ();
+    . . .
+};</programlisting>
+                    
+                    <para>The <classname>Lock</classname> class provides a <command>modifiesObject</command> operation which <classname>LockManager</classname> uses to determine if granting this locking request requires a call on modified. This operation is provided so that locking modes other than simple read and write can be supported. The supplied <classname>Lock</classname> class supports the traditional multiple reader/single writer policy.</para>
+                    
+                </section>
+        
+        <section>
+            <title>Object construction and destruction</title>
+            
+            <para>Recall that <emphasis>TxCore</emphasis> objects can be recoverable; recoverable and persistent; or neither. Additionally each object possesses a unique internal name. These attributes can only be set when that object is constructed. Thus <classname>LockManager</classname> provides two protected constructors for use by derived classes, each of which fulfils a distinct purpose:</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term><command>LockManager ()</command></term>
+                    <listitem><para>This constructor allows the creation of new objects, that is, no prior state is assumed to exist.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><command>LockManager (int ObjectType, ObjectName attr)</command></term>
+                    <listitem><para>As above, this constructor allows the creation of new objects, that is, no prior state is assumed to exist. The <literal>ObjectType</literal> parameter determines whether an object is simply recoverable (indicated by <literal>RECOVERABLE</literal>); recoverable and persistent (indicated by <literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). If an object is marked as being persistent then the state of the object will be stored in one of the object stores. The shared parameter only has meaning if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not null and the object model is <literal>SINGLE</literal> (the default behaviour) then the recoverable state of the object is maintained within the 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. </para>
+                    
+                        <para>Constructors for new persistent objects should make use of atomic actions within themselves. This will ensure that the state of the object is automatically written to the object store either when the action in the constructor commits or, if an enclosing action exists, when the appropriate top-level action commits. Later examples in this chapter illustrate this point further.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><command>LockManager(Uid objUid)</command></term>
+                    <listitem><para>This constructor allows access to an existing persistent object, whose internal name is given by the <literal>objUid</literal> parameter. Objects constructed using this operation will normally have their prior state (identified by <literal>objUid</literal>) loaded from an object store automatically by the system.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><command>LockManager(Uid objUid, ObjectName attr)</command></term>
+                    <listitem><para>As above, this constructor allows access to an existing persistent object, whose internal name is given by the <literal>objUid</literal> parameter. Objects constructed using this operation will normally have their prior state (identified by <literal>objUid</literal>) loaded from an object store 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.</para>
+                    
+                        <para>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.</para>
+                    
+                        <para>Because <classname>LockManager</classname> inherits from <classname>StateManager</classname>, it will pass any supplied <classname>ObjectName</classname> instance to the <classname>StateManager</classname> class. As such, it is possible to set the <classname>StateManager</classname> object model as described earlier.</para></listitem>
+                </varlistentry>
+                
+             
+                
+                
+            </variablelist>
+            
+        </section>
+        
+        
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_02.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_03.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,247 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+     <title>General Transaction Issues</title>
+    
+    <section>
+        
+        <title>Advanced transaction issues with TxCore</title>
+        
+        <para>Atomic actions (transactions) can be used by both application programmers and class developers. Thus entire operations (or parts of operations) can be 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.</para>
+        
+        <section>
+            <title>Checking transactions</title>
+            
+            <para>In a multi-threaded application, multiple threads may be associated with a transaction during its lifetime, i.e., the thread’s share the context. In addition, it is possible that if one thread terminates a transaction other threads may still be active within it. In a distributed environment, it can be difficult to guarantee that all threads have finished with a transaction when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a warning if a thread terminates a transaction when other threads are still active within it; however, it will allow the transaction termination to continue. Other solutions to this problem are possible, e.g., blocking the thread which is terminating the transaction until all other threads have disassociated themselves from the transaction context. Therefore, <emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna.coordinator.CheckedAction</classname> class, which allows the thread/transaction t!
 ermination policy to be overridden. Each transaction has an instance of this class associated with it, and application programmers can provide their own implementations on a per transaction basis.</para>
+            
+            <programlisting>public class CheckedAction
+{
+public CheckedAction ();
+
+public synchronized void check (boolean isCommit, Uid actUid,
+BasicList list);
+};</programlisting>
+            
+            <para>When a thread attempts to terminate the transaction and there are active 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:</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term>isCommit</term>
+                    <listitem><para>Indicates whether the transaction is in the process of committing or rolling back.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>actUid</term>
+                    <listitem><para>The transaction identifier.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>list</term>
+                    <listitem><para>a list of all of the threads currently marked as active within this transaction.</para></listitem>
+                </varlistentry>
+                
+                
+            </variablelist>
+            
+            <para>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.</para>
+            
+        </section>
+        
+        <section>
+            <title>Statistics gathering</title>
+            
+            <para>By default, the JBossTS does not maintain any history information about transactions. However, by setting the <literal>com.arjuna.ats.arjuna.coordinator.enableStatistics</literal> property variable to YES, the transaction service will maintain information about the number of transactions created, and their outcomes. This information can be obtained during the execution of a transactional application via the <classname>com.arjuna.TxCore.Atomic.TxStats</classname> class:</para>
+            
+            <programlisting>public class TxStats
+{
+
+/**
+* Returns the number of transactions (top-level and nested)
+* created so far.
+*/
+
+public static int numberOfTransactions ();
+
+/**
+* Returns the number of nested (sub) transactions created so far.
+*/
+
+public static int numberOfNestedTransactions ();
+
+/**
+* Returns the number of transactions which have terminated with
+* heuristic outcomes.
+*/
+
+public static int numberOfHeuristics ();
+
+/**
+* Returns the number of committed transactions.
+*/
+
+public static int numberOfCommittedTransactions ();
+
+/**
+* Returns the number of transactions which have rolled back.
+*/
+
+public static int numberOfAbortedTransactions ();
+
+}</programlisting>
+            
+            
+        </section>
+        
+        <section>
+            <title>Last resource commit optimisation</title>
+                
+            <para>In some cases it may be necessary to enlist participants that aren’t two-phase commit aware into a two-phase commit transaction. If there is only a single resource then there is no need for two-phase commit. However, what if there are multiple resources in the transaction? In this case, the Last Resource Commit optimization (LRCO) comes into play. It is possible for a single resource that is one-phase aware (i.e., can only commit or roll back, with no prepare), to be enlisted in a transaction with two-phase commit aware resources. The coordinator treats the one-phase aware resource slightly differently, in that it executes the prepare phase on all other resource first, and if it then intends to commit the transaction it passes control to the one-phase aware resource. If it commits, then the coordinator logs the decision to commit and attempts to commit the other resources as well.</para>
+            
+            <para>In order to utilise the LRCO, your participant must implement the <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface and be registered with the transaction through the <command>BasicAction</command>.add operation; since this operation expects instances of <classname>AbstractRecord</classname>, you must create an instance <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give your participant as the constructor parameter, as shown below:</para>
+            
+            <programlisting>try
+                {
+                boolean success = false;
+                AtomicAction A = new AtomicAction();
+                OnePhase opRes = new OnePhase();  // used OnePhase interface
+                
+                System.err.println("Starting top-level action.");
+                
+                A.begin();
+                A.add(new LastResourceRecord(opRes));
+                A.add(new ShutdownRecord(ShutdownRecord.FAIL_IN_PREPARE));
+                
+                A.commit();</programlisting>
+            
+        </section>
+        
+        <section>
+            <title>Nested transactions</title>
+            
+            <para>There are no special constructs for nesting of transactions: if an action is begun while another action is running then it is automatically nested. This allows for a modular structure to applications, whereby objects can be implemented using atomic actions within their operations without the application programmer having to worry about the applications which use them, i.e., whether or not the applications will use atomic actions as well. Thus, in some applications actions may be top-level, whereas in others they may be nested. Objects written in this way can then be shared between application programmers, and <emphasis>TxCore</emphasis> will guarantee their consistency.</para>
+            
+            <para>If a nested action is aborted then all of its work will be undone, although strict two-phase locking means that any locks it may have obtained will be retained until the top-level action commits or aborts. If a nested action 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.</para>
+            
+            <para>The committing or aborting of a nested action does not automatically affect 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.</para>
+        </section>
+        
+        <section>
+            <title>Asynchronously committing a transaction</title>
+            
+            <para>By default, JBossTS executes the commit protocol of a top-level transaction 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:</para>
+            
+            <itemizedlist>
+                <listitem><para>In the case of many registered resources, the prepare operating can logically be invoked in parallel on each resource. The disadvantage is that if an “early” resource in the list of registered resource forces a rollback during prepare, possibly many prepare operations will have been made needlessly.</para></listitem>
+                <listitem><para>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.</para></listitem>
+            </itemizedlist>
+            
+            <para>Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable possible threading optimizations. By setting the  <literal>com.arjuna.ats.arjuna.coordinator.asyncPrepare</literal> environment variable to <literal>YES</literal>, during the prepare phase a separate thread will be created for each registered participant within the transaction. By setting <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to <literal>YES</literal>, a separate thread will be created to complete the second phase of the transaction if knowledge about heuristics outcomes is not required.</para>
+            
+            
+        </section>
+        
+        <section>
+            <title>Independent top-level transactions</title>
+            
+            <para>In addition to normal top-level and nested atomic actions <emphasis>TxCore</emphasis> also supports independent top-level actions, which can be used to relax strict serialisability in a controlled manner. An independent top-level action can be executed from anywhere within another atomic action and behaves exactly like a normal top-level action, that is, its results are made permanent when it commits and will not be undone if any of the actions within which it was originally nested abort.</para>
+            
+            <mediaobject id="figure_5">
+                <imageobject>
+                    <imagedata align="center" fileref="images/Independent_Top-Level.png" />
+                </imageobject>
+                <caption> Independent Top-Level Action</caption>
+            </mediaobject>
+            
+            <para><xref linkend="figure_5"/> shows a typical nesting of atomic actions, where action B is nested within action A. Although atomic action C is logically nested within action B (it had its Begin operation invoked while B was active) because it is an independent top-level action, it will commit or abort independently of the 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.</para>
+            
+            <para>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.</para>
+           
+        </section>
+        
+        <section>
+            <title>Transactions within save_state and restore_state</title>
+            
+            <para>Caution must be exercised when writing the <command>save_state</command> and <command>restore_state</command> operations to ensure that no atomic actions are started (either explicitly in the operation or implicitly through use of some other operation). This restriction arises due to the fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as part of its commit processing resulting in the attempt to execute an atomic action during the commit or abort phase of another action. This might violate the atomicity properties of the action being committed (aborted) and is thus discouraged.</para>
+            
+        </section>
+        
+        <section>
+            <title>Example</title>
+            
+            <para>If we consider the Array example given previously, the set and get operations could be implemented as shown below.</para>
+            
+            <note><para>This is a simplification of the code, ignoring error conditions and exceptions.</para></note>
+            
+            <programlisting>public boolean set (int index, int value)
+{
+    boolean result = false;
+    AtomicAction A = new AtomicAction();
+
+    A.begin();
+
+    // We need to set a WRITE lock as we want to modify the state.
+
+    if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+    {
+        elements[index] = value;
+        if ((value &gt; 0) &amp;&amp;(index &gt; highestIndex))
+            highestIndex = index;
+        A.commit(true);
+        result = true;
+    }
+    else
+        A.rollback();
+
+    return result;
+}
+
+public int get (int index)  // assume -1 means error
+{
+    AtomicAction A = new AtomicAction();
+
+    A.begin();
+
+    // We only need a READ lock as the state is unchanged.
+
+    if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+    {
+        A.commit(true);
+
+        return elements[index];
+    }
+    else
+        A.rollback();
+
+    return -1;
+}</programlisting>
+            
+        </section>
+        
+        <section>
+            <title>Garbage collecting objects</title>
+            
+            <para>Java objects are deleted when the garbage collector determines that they are no longer required. Deleting an object that is currently under the control of a transaction must be approached with caution since if the object is being manipulated within a transaction its fate is effectively determined by the transaction. Therefore, regardless of the references to a transactional 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.</para>
+            
+        </section>
+        
+        <section>
+            <title>Transaction timeouts</title>
+            
+            <para>By default transactions live until they are terminated by the application that created them or a failure occurs. However, it is possible to set a 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.</para>
+            
+            <para>In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter to the <classname>AtomicAction</classname> constructor. If a value of <literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then the transaction will not be automatically timed out. Any other positive value is assumed to the timeout for the transaction (in seconds). A value of zero is taken to be a global default timeout, which can be provided by the property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal>. Unless changed the default value is 60 seconds.</para>
+            
+            <para>When a top-level transaction is created with a non-zero timeout, it is subject to being rolled back if it has not completed within the specified number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper thread which monitors all locally created transactions, and forces them to roll back if their timeouts elapse. To prevent this thread from consuming application time, it only runs periodically. The default checking period is 120000 milliseconds, but can be overridden by setting the  <literal>com.arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to another valid value, in microseconds. Alternatively, if the <literal>com.arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to <literal>DYNAMIC</literal>, the transaction reaper will wake whenever a transaction times out. This has the advantage of terminating transactions early, but may suffer from continually rescheduling the reaper thread.</para>
+            
+            <para>If a value of 0 is specified for the timeout of a top-level transaction (or no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose any timeout on the transaction, i.e., it will be allowed to run indefinitely. This default timeout can be overridden by setting the <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using <emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds.</para>
+            
+            
+        </section>
+        
+        
+    </section>
+    
+    
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_03.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_04.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_04.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_04.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,92 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Hints and tips</title>
+    
+    <section>
+        <title>General</title>
+        
+        <section>
+            <title>Using transactions in constructors</title>
+            
+            <para>Examples throughout this manual have used transactions in the implementation of constructors for new persistent objects. This is deliberate because it guarantees correct propagation of the state of the object to the object store. Recall that the state of a modified persistent object is only written to the object store when the top-level transaction commits. Thus, if the constructor transaction is top-level and it commits, then the newly created object is written to the store and becomes available immediately. If 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. </para>
+            
+            <para>On the other hand, if the constructor does not use transactions then it is possible for inconsistencies in the system to arise. For example, if no 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.</para>
+            
+            <para>Consider this simple example:</para>
+            
+            <programlisting>AtomicAction A = new AtomicAction();
+Object obj1;
+Object obj2;
+
+obj1 = new Object();			// create new object
+obj2 = new Object("old");		// existing object
+
+A.begin(0);
+obj2.remember(obj1.get_uid());	// obj2 now contains reference to obj1
+A.commit(true);				// obj2 saved but obj1 is not</programlisting>
+            
+            <para>Here the two objects are created outside of the control of the top-level action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> an old existing object. When the remember operation of <literal>obj2</literal> is invoked the object will be activated and the Uid of <literal>obj1</literal> remembered. Since this action commits the persistent state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</literal>. However, the state of <literal>obj1</literal> itself has not been saved since it has not been manipulated under the control of any action. In fact, unless it is modified under the control of some action later in the application it will never be saved. If, however, the constructor had used an atomic action the state of <literal>obj1</literal> would have automatically been saved at the time it was constructed and this inconsistency could not arise.</para>
+        </section>
+        
+        <section>
+            <title>More on save_state and restore_state</title>
+            
+            <para><emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</command> operation of an object effectively at any time during the lifetime of an object including during the execution of the body of the object’s constructor (particularly if it uses atomic actions). It is important, therefore, that all of the variables saved by save_state are correctly initialised.</para>
+            
+            <para>Caution must be also exercised when writing the <command>save_state</command> and <command>restore_state</command> operations to ensure that no transactions are started (either explicitly in the operation or implicitly through use of some other operation). This restriction arises due to the fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as part of its commit processing resulting in the attempt to execute an atomic transaction during the commit or abort phase of another transaction. This might violate the atomicity properties of the transaction being committed (aborted) and is thus discouraged.</para>
+            
+            <para>In order to support crash recovery for persistent objects it is necessary for all <literal>save_state</literal> and <literal>restore_state</literal> methods of user objects to call <command>super.save_state</command> and <command>super.restore_state</command>.</para>
+            
+        </section>
+        
+        <section>
+            <title>Packing Objects</title>
+            
+            <para>All of the basic types of Java (int, long, etc.) can be saved and restored from an <classname>Input/OutputObjectState</classname> instance by using the pack (and unpack) routines provided by <classname>Input/OutputObjectState</classname>. However packing and unpacking objects should be handled 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:</para>
+            
+            <programlisting>public class Test
+{
+    public Test (String s);
+    ...
+    private String s1;
+    private String s2;
+};
+
+public Test (String s)
+{
+    s1 = s;
+    s2 = s;
+}</programlisting>
+            
+            <para>Here, both s1 and s2 point at the same string and a naive implementation of <command>save_state</command> could end up by copying the string twice. From a <command>save_state</command> perspective this is simply inefficient. However, it makes <command>restore_state</command> incorrect since it would 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.</para>
+         
+         </section>
+    </section>
+    
+    <section>
+        <title>Direct use of StateManager</title>
+        
+        <para>The examples throughout this manual have always derived user classes from <classname>LockManager</classname>. The reasons for this are twofold. Firstly, and most importantly, the serialisability constraints of atomic actions require it, and secondly it reduces the need for programmer 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.</para>
+        
+        <para>Classes derived directly from <classname>StateManager</classname> must make use of its state management mechanisms explicitly (these interactions are normally undertaken by <classname>LockManager</classname>). From a programmer's point of view this amounts to making appropriate use of the operations activate, deactivate and modified, since <classname>StateManager</classname>'s constructors are effectively identical to those of <classname>LockManager</classname>.</para>
+        
+        <programlisting>boolean activate ()
+boolean activate (String storeRoot)</programlisting>
+        
+        <para><command>Activate</command> loads an object from the object store. The object’s UID must already have been set via the constructor and the object must exist in the store. If the object is successfully read then <command>restore_state</command> is called to build the object in memory. <command>Activate</command> is idempotent so that once an object has been activated further calls are ignored. The parameter represents the root name of the object store to search for the object. A value of null means use the default store.</para>
+        
+        <programlisting>boolean deactivate ()
+boolean deactivate (String storeRoot)</programlisting>
+        
+        <para>The inverse of activate. First calls <command>save_state</command> to build the compacted image of the object which is then saved in the object store. 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.</para>
+        
+        <programlisting>void modified ()</programlisting>
+        
+        <para><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.</para>
+    </section>
+    
+    
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_04.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_05.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_05.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_05.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,514 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Tools</title>
+    
+    <section>
+        <title>Introduction</title>
+    
+        <para>This chapter explains how to start and use the tools framework and what tools are available.</para>
+    
+    </section>
+    
+    <section>
+        <title>Starting the Transaction Service tools</title>
+        
+        <para>The way to start the transaction service tools differs on the operating system being used:</para>
+        
+        <formalpara>
+            <title>Windows</title>
+            
+            <para>Double click on the ‘Start Tools’ link in the JBoss Transaction Service program group in the start menu.</para>
+        </formalpara>
+        
+        <formalpara>
+            <title>Unix</title>
+            
+            <para>
+                Start a bash shell and type:
+                </para>
+        </formalpara>
+        
+        <programlisting>cd &lt;JBossTS INSTALL DIRECTORY&gt;
+./run-tools.sh</programlisting>
+    
+        <para>Once you have done this the tools window will appear. This is the launch area for all of the tools shipped with the <emphasis>JBoss Transaction Service</emphasis>.  At the top of the window you will notice a menu bar. This menu bar has four items:</para>
+        
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Menu.png" format="PNG"/>
+		</imageobject>
+		<caption>Menu bar</caption>
+	</mediaobject>
+	
+        <formalpara>
+            <title>The <menuchoice><guimenu>File</guimenu></menuchoice> Menu</title>
+	    <para>&nbsp;
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/File_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Open JMX Browser</term>
+                        <listitem><para>This displays the JMX browser window (see ***Using the JMX Browser for more information on how to use the JMX browser).</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Open Object Store Browser </term>
+                        <listitem><para>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).</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Settings</term>
+                        <listitem><para>This option opens the settings dialog which lets you configure the different tools available.</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry><term>Exit</term>
+                        <listitem><para>This closes the tools window and exits the application, any unsaved/unconfirmed changes will be lost.</para></listitem></varlistentry>
+                    
+                    
+                </variablelist>
+                
+            </para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu</title>
+	    <para>&nbsp; 
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Performance_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Open</term>
+                        <listitem><para>This opens a performance window – see <xref linkend="Performance_Tool"/> for more information on the performance tool.</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Close All</term>
+                        <listitem><para>this closes all of the currently open performance windows – see <xref linkend="Performance_Tool"/> for more information on the performance tool.</para></listitem>
+                    </varlistentry>
+                    
+                </variablelist>
+                
+            </para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu</title>
+	    <para> &nbsp;
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Window_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para><variablelist>
+                <varlistentry>
+                    <term>Cascade Windows</term>
+                    <listitem><para>This arranges the windows in a diagonal line to you find a specific window.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>1. XXXXXXX</term>
+                    <listitem><para>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.</para></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            </para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu</title>
+	    <para>&nbsp;
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Help_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para><variablelist>
+                <varlistentry>
+                    <term>About</term>
+                    <listitem><para>This displays the about window containing the product information.</para></listitem>
+                </varlistentry>
+            </variablelist>
+            </para>
+        
+        
+        
+    </section>
+    
+    <section id="Performance_Tool">
+        <title>Using the Performance Tool</title>
+        
+        <para>The performance tool can be used to display performance information about 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.</para>
+        
+        <para>The performance information is displayed via a multi-series graph.  To view this graph simply open a performance window by selecting <menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; <menuchoice><guimenuitem>Open</guimenuitem></menuchoice></para>
+	
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Performance_Window.png" format="PNG"/>
+		</imageobject>
+	    </mediaobject>
+	
+	<para>
+		The window now on screen contains a multi-serise graph which can display the following information:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Number of transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of committed transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of aborted transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of nested transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of heuristics raised.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		To turn these series on and off simply select the menu option from the series menu. 
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Series_Menu.png" format="PNG"/>
+		</imageobject>
+	    </mediaobject>
+	<para>
+		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.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Series_Colour.png" format="PNG"/>
+		</imageobject>
+	    </mediaobject>
+	<para>
+		The data shown is graphed against time. The Y-axis represents the number of transactions and the X-axis represents time.
+	</para>
+	<para>
+		At any point the sampling of data can be stopped and restarted using the <menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data currently visible in the graph can be saved to a Comma Separate Values  (CSV) 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.
+	</para>
+    </section>
+    <section id="JMX_Browser">
+    	<title>Using the JMX Browser</title>
+	<para>
+		To open the JMX browser window click on the <menuchoice><guimenu>File</guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX Browser</guimenu></menuchoice> option.  The JMX browser window will then be displayed.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/JMX_Browser.png" format="PNG"/>
+		</imageobject>
+	</mediaobject>
+	<para>
+		The window is made up of two main sections:the details panel and the MBean panel. The MBean panel displays the MBeans exposed by the MBean server. These are grouped by domain name.  The details panel displays information 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:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				The total number of MBeans registered on this server.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of constructors exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of attributes exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of operations exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of notifications exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A brief description of the MBean.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which when clicked displays the attributes and operations exposed by this MBean.  From there you can view readable attributes, alter writeable attributes and invoke operations.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Details_Panel.png" format="PNG"/>
+		</imageobject>
+		<caption>An example of what the details panel displays</caption>
+	</mediaobject>
+	<section id="Using_Attributes_and_Operations">
+		<title>Using Attributes and Operations</title>
+		<para>
+			When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked the View JMX Attributes and Operations window is displayed.  From here you can view all readable attributes exposed by the selected MBean.  You can also alter writeable attributes.  If an attribute is read-only then you will not be able to alter an attributes value.  To alter an attributes value just double click on the current value and enter the new value.  If the <guibutton>...</guibutton> button is enabled then you can click this to view 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.
+		</para>
+		<para>
+			At any point you can click the <guibutton>Refresh</guibutton> button to 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.
+		</para>
+		<para>
+			You can also invoke operations upon an MBean.  A list of operations exposed by an MBean is displayed below the attributes list.  To invoke an operation simply select it from the list and click the <guibutton>Invoke</guibutton> button.  If the operation requires parameters a further window will be displayed, from this window you must specify values for each of the parameters required.  You specify parameter values in the same way as you 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.
+		</para>
+		<para>
+			Once the method invocation has completed its return value will be displayed.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/JMX_Attributes_Operations.png" format="PNG"/>
+			</imageobject>
+			<caption>View JMX Attributes and Operations window</caption>
+	    </mediaobject>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Invoke_Operation_Parameters.png" format="PNG"/>
+		    </imageobject>
+		    <caption>Invoke Operation Parameters</caption>
+	    </mediaobject>
+	</section>
+	<section id="Using_the_Object_Store_Browser">
+		<title>Using the Object Store Browser</title>
+		<para>
+			To open the Object Store browser window click on the <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.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Object_Store.png" format="PNG"/>
+			</imageobject>
+	    </mediaobject>
+		<para>
+			The object store browser window is split into four sections:
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Object_Store_Split.png" format="PNG"/>
+			</imageobject>
+	    </mediaobject>
+		<itemizedlist>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Objects – this is a list of icons which represent the objects stored in the selected location.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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).
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	<section id="Object_State_Viewers">
+		<title>Object State Viewers (OSV)</title>
+		<para>
+			When an object is selected in the objects pane of the main window the registered Object State Viewer (or OSV) for that object type is invoked. An OSV’s job is to make information available via the user interface to the user to show information about the selected object. Distributed with the standard tools is an OSV for Atomic Actions, the OSV displays information on the Abstract Records in it’s various lists (e.g. heuristic, failed, read-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.
+		</para>
+		<formalpara>
+			<title>Writing an OSV</title>
+			<para>
+				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:
+			</para>
+		</formalpara>
+		<para>
+		 <code>com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface</code>
+	 	</para>	
+		<para>
+			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:
+		</para>
+<screen>
+public class SimpleRecord extends AbstractRecord
+{
+	private int _value = 0;
+	
+	.....
+	
+	public void increase()
+	{
+		_value++;
+	}
+	
+	public int get()
+	{
+		return _value;
+	}
+	
+	public String type()
+	{
+		return “/StateManager/AbstractRecord/SimpleRecord”;
+	}
+	
+	public boolean restore_state(InputObjectState os, int i)
+	{
+		boolean returnValue = true;
+	
+		try
+		{
+			_value = os.unpackInt();
+		}
+		catch (java.io.IOException e)
+		{
+			returnValue = false;
+		}
+	
+		return returnValue;
+	}
+	
+	public boolean save_state(OutputObjectState os, int i)
+	{
+		boolean returnValue = true;
+	
+		try
+		{
+			os.packInt(_value);
+		}
+		catch (java.io.IOException e)
+		{
+			returnValue = false;
+		}
+	
+		return returnValue;
+	}
+}
+</screen>
+		<para>
+			When this abstract record is viewed in the object store browser it would be nice to see the current value. This is easy to do as we can read the state into an instance of our abstract record and call <methodname>getValue()</methodname>. The following is the object store browser plug-in source code:
+		</para>
+<screen>
+public class SimpleRecordOSVPlugin implements StateViewerInterface
+{
+	/**
+	* A uid node of the type this viewer is registered against has been expanded.
+	* @param os
+	* @param type
+	* @param manipulator
+	* @param node
+	* @throws ObjectStoreException
+	*/
+	public void uidNodeExpanded(ObjectStore os,
+	String type,
+	ObjectStoreBrowserTreeManipulationInterface 
+	manipulator,
+	UidNode node,
+	StatePanel infoPanel)
+	throws ObjectStoreException
+	{
+		// Do nothing
+	}
+	
+	/**
+	* An entry has been selected of the type this viewer is registered against.
+	*
+	* @param os
+	* @param type
+	* @param uid
+	* @param entry
+	* @param statePanel
+	* @throws ObjectStoreException
+	*/
+	public void entrySelected(ObjectStore os,
+	String type,
+	Uid uid,
+	ObjectStoreViewEntry entry,
+	StatePanel statePanel) 
+	throws ObjectStoreException
+	{
+		SimpleRecord rec = new SimpleRecord();
+	
+		if ( rec.restore_state( os.read_committed(uid, type), ObjectType.ANDPERSISTENT ) )
+		{
+			statePanel.setData( “Value”, rec.getValue() );
+		}
+	}
+	
+	/**
+	* Get the type this state viewer is intended to be registered against.
+	* @return
+	*/
+	public String getType()
+	{
+		return “/StateManager/AbstractRecord/SimpleRecord”;
+	}
+}
+</screen>
+		<para>
+			The method <methodname>uidNodeExpanded</methodname> is invoked when a UID (Unique Identification) representing the given type is expanded in the object store hierarchy tree. This is not required by this plugin as this abstract record is not visible in the object store directly it is only viewable via one of the lists in an atomic action.  The method <methodname>entrySelected</methodname> is invoked when an entry is selected from the object view which represents an object with the given type. In both 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:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>setInfo(String info)</methodname>: This method can be used to show general information.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>enableDetailsButton(DetailsButtonListener listener)</methodname>: This method is used to enable the details button.  The listener interface allows a plug-in to be informed when the button is pressed.  It is up to the plug-in developer to decide how to display this further information.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			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.
+		</para>
+		<para>
+			To add this plug-in to the object store browser it is necessary to package it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. The JAR file must contain certain information within the manifest file so that the object store browser knows which classes are plug-ins.  All of this can be performed using an <ulink url="http://ant.apache.org">Apache ANT</ulink> script, as follows:
+		</para>
+<screen>
+&lt;jar jarfile="osbv-simplerecord.jar"&gt;
+	&lt;fileset dir="build" includes="*.class”/&gt;
+	&lt;manifest&gt;
+		&lt;section name="arjuna-tools-objectstorebrowser"&gt;
+			&lt;attribute name="plugin-classname-1" value=" SimpleRecordOSVPlugin "/&gt;
+		&lt;/section&gt;
+	&lt;/manifest&gt;
+&lt;/jar&gt;
+</screen>
+		<para>
+			Once the JAR has been created with the correct information in the manifest file it just needs to be placed in the <emphasis>bin/tools/plugins</emphasis> directory.
+		</para>
+	</section>
+    </section>
+</chapter>


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_05.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_06.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_06.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_06.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,379 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Constructing a Transactional objects for Java application</title>
+    
+    <section>
+        <title>Application construction</title>
+		<para>
+			There are two distinct phases to the development of a TxCore application:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Developing new classes with certain characteristics (for example, Persistent, Recoverable, Concurrency Controlled).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Developing the application(s) that make use of the new classes of objects.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Although these two phases may be performed in parallel and by a single person, we shall refer to the first step as the job of the class developer and the second as the job of the applications developer. The class developer will be concerned about defining appropriate <code>save_state</code> and <code>restore_state</code> operations for the class, setting appropriate locks in operations, and invoking the appropriate TxCore class constructors. The applications developer will be more concerned with defining the general structure of the application, particularly with regard to the use of atomic actions.
+		</para>
+		<para>
+			This chapter illustrates the points made in previous sections by outlining a simple application: in this case a simple FIFO Queue class for integer values will be developed. The implementation of the Queue will be with a doubly linked list structure, and it will be implemented as a single object. We shall be using this example throughout the rest of this manual to help 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.
+		</para>
+		<para>
+			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.
+		</para>
+		<formalpara>
+			<title>Queue description</title>
+			<para>
+				The queue is a traditional FIFO queue, where elements are added to the front and removed from the back. The operations provided by the queue class allow the values to be placed on to the queue (enqueue) and to be removed from it (dequeue), and it is also possible to change or inspect the values of 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.
+			</para>
+		</formalpara>
+			<para>
+				The Java interface definition of this simple queue class is given below:
+			</para>
+<screen>
+public class TransactionalQueue extends LockManager
+{
+	public TransactionalQueue (Uid uid);
+	public TransactionalQueue ();
+	public void finalize ();
+	
+	public void enqueue (int v) throws OverFlow, UnderFlow,
+	QueueError, Conflict;
+	public int dequeue  () throws OverFlow, UnderFlow,
+	QueueError, Conflict;
+	
+	public int queueSize ();
+	public int inspectValue (int i) throws OverFlow,
+	UnderFlow, QueueError, Conflict;
+	public void setValue (int i, int v) throws OverFlow,
+	UnderFlow, QueueError, Conflict;
+	
+	public boolean save_state (OutputObjectState os, int ObjectType);
+	public boolean restore_state (InputObjectState os, int ObjectType);
+	public String type ();
+	
+	public static final int QUEUE_SIZE = 40; // maximum size of the queue
+	
+	private int[QUEUE_SIZE] elements;
+	private int numberOfElements;
+};			
+</screen>
+		<formalpara>
+			<title>Constructors and deconstructors</title>
+			<para>
+				As stated in the previous section, to use an existing persistent object 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:
+			</para>
+		</formalpara>
+<screen>
+public TransactionalQueue (Uid u)
+{
+	super(u);
+	
+	numberOfElements = 0;
+}		
+</screen>
+			<para>
+				The constructor that creates a new persistent object is similar:
+			</para>
+<screen>
+public TransactionalQueue ()
+{
+	super(ObjectType.ANDPERSISTENT);
+	
+	numberOfElements = 0;
+	
+	try
+	{
+		AtomicAction A = new AtomicAction();
+	
+		A.begin(0);	// Try to start atomic action
+	
+		// Try to set lock
+	
+			if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+			{
+				A.commit(true);	// Commit
+			}
+			else 	// Lock refused so abort the atomic action
+				A.rollback();
+			}
+	catch (Exception e)
+	{
+		System.err.println(“Object construction error: “+e);
+		System.exit(1);
+	}
+}			
+</screen>
+			<para>
+				The use of an atomic action within the constructor for a new object follows the guidelines outlined earlier and ensures that the object’s state will be written to the object store when the appropriate top level atomic action commits (which will either be the action A or some enclosing action active when the <code>TransactionalQueue</code> was constructed). The use of atomic actions in a constructor is simple: an action must first be declared and its begin operation invoked; the operation must then set an appropriate lock on 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.
+			</para>
+			<para>
+				The destructor of the queue class is only required to call the terminate operation of <methodname>LockManager</methodname>
+			</para>
+<screen>
+public void finalize ()
+{
+	super.terminate();
+}
+</screen>
+		<formalpara>
+			<title>save_state, resotre_state and type</title>
+			<para>
+				The implementations of save_state and restore_state are relatively simple for this example:
+			</para>
+		</formalpara>
+<screen>
+public boolean save_state (OutputObjectState os, int ObjectType)
+{
+	if (!super.save_state(os, ObjectType))
+	return false;
+	
+	try
+	{
+		os.packInt(numberOfElements);
+	
+		if (numberOfElements &gt; 0)
+		{
+			for (int i = 0; i &lt; numberOfElements; i++)
+			    os.packInt(elements[i]);
+		}
+			    
+		return true;
+	}
+	catch (IOException e)
+	{
+		return false;
+	}
+}
+
+public boolean restore_state (InputObjectState os, int ObjectType)
+{
+	if (!super.restore_state(os, ObjectType))
+		return false;
+		    
+	try
+	{
+		numberOfElements = os.unpackInt();
+		    
+		if (numberOfElements &gt; 0)
+		{
+			for (int i = 0; i &lt; numberOfElements; i++)
+				    elements[i] = os.unpackInt();
+		}
+		    
+		return true;
+	}
+	catch (IOException e)
+	{
+		return false;
+	}
+}			
+</screen>
+		<para>
+			Because the Queue class is derived from the <classname>LockManager</classname> class, the operation type should be:
+		</para>
+<screen>
+public String type ()
+{
+	return "/StateManager/LockManager/TransactionalQueue";
+}
+</screen>
+		<formalpara>
+			<title>enqueue/dequeue operations</title>
+				<para>
+					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):
+				</para>
+		</formalpara>
+<screen>
+public void enqueue (int v) throws OverFlow, UnderFlow, QueueError
+{
+	AtomicAction A = new AtomicAction();
+	boolean res = false;
+	
+	try
+	{
+		A.begin(0);
+	
+		if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+		{
+			if (numberOfElements &lt; QUEUE_SIZE)
+			       {
+			       		elements[numberOfElements] = v;
+			       		numberOfElements++;
+			       		res = true;
+			       }
+			       else
+			       {
+			       		A.rollback();
+			      		throw new UnderFlow();
+			       }
+		}
+			       
+		if (res)
+			 A.commit(true);
+		else
+		{
+			 A.rollback();
+			       		throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+}
+</screen>
+		<formalpara>
+			<title>queueSize</title>
+			<para>The implementation of <methodname>queueSize</methodname> is shown below:</para>
+		</formalpara>
+<screen>
+public int queueSize () throws QueueError, Conflict
+{
+	AtomicAction A = new AtomicAction();
+	int size = -1;
+	
+	try
+	{
+		A.begin(0);
+	
+		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+			size = numberOfElements;
+	
+		if (size != -1)
+			A.commit(true);
+		else
+		{
+			A.rollback();
+	
+			throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+	
+	return size;
+}
+</screen>
+		<formalpara>
+			<title>inspectValue/setValue operations</title>
+				<para>
+					The implementation of <methodname>inspectValue</methodname> is shown below. <methodname>setValue</methodname> is similar, and not shown.
+				</para>
+		</formalpara>
+<screen>
+public int inspectValue (int index) throws UnderFlow,
+	OverFlow, Conflict, QueueError
+{
+	AtomicAction A = new AtomicAction();
+	boolean res = false;
+	int val = -1;
+	
+	try
+	{
+		A.begin();
+	
+		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+		{
+			if (index &lt; 0)
+		   	 {
+		   		 A.rollback();
+		    		throw new UnderFlow();
+		    	}
+		else
+		{
+		    // array is 0 - numberOfElements -1
+		    
+		    if (index &gt; numberOfElements -1)
+		{
+			A.rollback();
+			throw new OverFlow();
+		}
+		else
+		{
+			val = elements[index];
+			res = true;
+		}
+		}
+		}
+		
+		if (res)
+			A.commit(true);
+		else
+		{
+			A.rollback();
+			throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+		
+	return val;
+}
+</screen>
+		<formalpara>
+			<title>The client</title>
+				<para>
+					Rather than show all of the code for the client, we shall concentrate on a 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.
+				</para>
+		</formalpara>
+<screen>
+public static void main (String[] args)
+{
+TransactionalQueue myQueue = new TransactionalQueue();
+</screen>
+				<para>
+					Before invoking one of the queue’s operations, the client starts a transaction. The <methodname>queueSize</methodname> operation is shown below:
+				</para>
+<screen>
+AtomicAction A = new AtomicAction();
+int size = 0;
+	
+try
+{
+	A.begin(0);
+s
+	try
+	{
+		size = queue.queueSize();
+	}
+	catch (Exception e)
+	{
+	}
+	
+	if (size &gt;= 0)
+	{
+		A.commit(true);
+	
+		System.out.println(“Size of queue: “+size);
+	}
+	else
+		A.rollback();
+}
+catch (Exception e)
+{
+	System.err.println(“Caught unexpected exception!”);
+}
+</screen>
+		<formalpara>
+			<title>Comments</title>
+				<para>
+					Since the queue object is persistent, then the state of the object will survive any failures of the node on which it is located. The state of the object that will survive is that produced by the last top-level committed atomic action performed on the object. If it is the intention of an application to perform two enqueue operations atomically, for example, then this can be done by nesting the enqueue operations in another enclosing atomic action. In addition, concurrent operations on such a persistent object will be serialised, thereby preventing inconsistencies in the state of the object. However, since the elements of the queue objects are not individually concurrency controlled, certain combinations of concurrent operation invocations will be executed serially, whereas logically they 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.
+				</para>
+		</formalpara>
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_06.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_07.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_07.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_07.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,235 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Configuration options</title>
+    
+    <section>
+        <title>Options</title>
+		<para>
+			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.
+		</para>
+		<table>
+			<title>TxCore configuration options.</title>
+			<tgroup cols="3">
+				<thead>
+					<row>
+						<entry>
+							Configuration Name
+						</entry>
+						<entry>
+							Possible Values
+						</entry>
+						<entry>
+							Description
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.storeSync
+						</entry>
+						<entry>
+							ON/OFF
+						</entry>
+						<entry>
+							Turns synchronization of the object store on or off. Use with caution.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.storeType
+						</entry>
+						<entry>
+							ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
+						</entry>
+						<entry>
+							Specify the type of object store implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.hashedDirectories
+						</entry>
+						<entry>
+							255/any integer value
+						</entry>
+						<entry>
+							Set the number of directories to hash object states over for the HashedStore object store implementation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.txoj.lockstore.lockStoreType
+						</entry>
+						<entry>
+							BasicLockStore/BasicPersistentLockStore
+						</entry>
+						<entry>
+							Specify the type of the lock store implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.txoj.lockstore.lockStoreDir
+						</entry>
+						<entry>
+							Windows: .\LockStore
+							Unix: ./LockStore
+						</entry>
+						<entry>
+							Specify the location of the lock store.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.objectStoreDir
+						</entry>
+						<entry>
+							Any location the application can write to.
+						</entry>
+						<entry>
+							Specify the location of the object store.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.localOSRoot
+						</entry>
+						<entry>
+							defaultStore
+						</entry>
+						<entry>
+							Specify the name of the object store root.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.actionStore
+						</entry>
+						<entry>
+							ActionStore/HashedActionStore/JDBCActionStore
+						</entry>
+						<entry>
+							The transaction log implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.asyncCommit
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Turns on or off (default) asynchronous commit.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.asyncPrepare
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Turns on or off (default) asynchronous prepare.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.transactionSync
+						</entry>
+						<entry>
+							ON/OFF
+						</entry>
+						<entry>
+							Turns synchronization of the object store on or off. Use with caution.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
+						</entry>
+						<entry>
+							JDBCAccess class name
+						</entry>
+						<entry>
+							The JDBCAccess implementation to use for user-level object stores.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
+						</entry>
+						<entry>
+							JDBCAccess class name
+						</entry>
+						<entry>
+							The JDBCAccess implementation to use for transaction object stores.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.commitOnePhase
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Enable or disable the one-phase commit optimization.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Enable or disable read-only optimization for the second phase abort.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.enableStatistics
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Start/stop collecting transaction statistic information.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.startDisabled
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.defaultTimeout
+						</entry>
+						<entry>
+							Integer
+						</entry>
+						<entry>
+							Timeout in milliseconds
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+			
+
+		</table>
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Chapter_07.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3 @@
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,21 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+	<xi:include href="Chapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_02.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_03.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_04.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_05.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_06.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
+	<xi:include href="Chapter_07.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Appendix_A.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Appendix_B.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Appendix.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Details_Panel.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Details_Panel.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/File_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/File_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Help_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Help_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Independent_Top-Level.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Independent_Top-Level.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Invoke_Operation_Parameters.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Invoke_Operation_Parameters.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/JMX_Attributes_Operations.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/JMX_Attributes_Operations.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/JMX_Browser.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/JMX_Browser.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Multiple_Object.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Multiple_Object.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Object_Store.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Object_Store.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Object_Store_Split.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Object_Store_Split.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Performance_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Performance_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Performance_Window.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Performance_Window.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Persistent_Object_Lifecycle.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Persistent_Object_Lifecycle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Series_Colour.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Series_Colour.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Series_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Series_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Single_Object.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Single_Object.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/TXCore_class_hierarchy.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/TXCore_class_hierarchy.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Window_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/en-US/images/Window_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,695 @@
+# translation of Appendix_A.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-07 08:56+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Implementaciones de almacenamiento de objetos "
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "El ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "En este apéndice vamos a examinar las variadas implementaciones del almacenamiento de objetos TxCore y vamos a brindar las directrices de cómo se pueden crear otras implementaciones y conectarlas a una aplicación. "
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Este lanzamiento de JBossTS contiene varias implementaciones diferentes de un almacenamiento básico de objetos. Cada una de ellas sirve un propósito particular y generalmente se optimiza para ese propósito. Todas las implementaciones se derivan de la interfaz <interface>ObjectStore</interface>. Esta define las operaciones mínimas que se deben proveer para que JBossTS utilice una implementación de un almacenamiento de objetos. La implementación predeterminada del almacenamiento de objetos se puede sobreescribir en tiempo de ejecución configurando la variable de la propiedad <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> con uno de los tipos que se describen a continuación. "
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 "Los programadores de JBossTS usualmente no necesitan interactuar directamente con ninguna de las implementaciones del almacenamiento de objetos sólo posiblemente para crearlas en primer lugar (incluso esto no es necesario si el tipo predeterminado del almacenamiento se utiliza mientras JBossTS crea almacenamientos cuando sea necesario). Todos los almacenamientos manipulan instancias de la clase <classname>ObjectState</classname>, las cuales se nombran utilizando un tipo (por medio de la operación de tipo() del objeto) y un Uid. Para los propósitos de las acciones atómicas, los estados de objeto en el almacenamiento se pueden encontrar principalmente en dos estados diferentes: OS_COMMITTED y OS_UNCOMMITTED. El estado de un objeto inicia en el estado OS_COMMITTED pero cuando se modififca bajo el control de una acción atómica puede que se escriba un segundo y nuevo estado del objeto es decir en el estado OS_UNCOMMITTED. Si la acción guarda este segundo objeto re!
 emplaza el original y se convierte en OS_COMMITTED. Si la acción aborta, este segundo estado del objeto simplemente se descarta. Todas las implementaciones que se proporcionan con este lanzamiento manejan estas transiciones de estado utilizando copias sombra de estados de objetos, sin embargo, cualquier otra implementación que mantiene esta abstracción es permisible. Los estados de objetos se pueden convertir en ocultos (y por lo tanto inaccesibles) bajo el control del sistema de recuperación de fallos. "
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"El navegar el contenido de un almacenamiento es posible por medio de las operaciones <methodname>allTypes</methodname> y <methodname>allObjUids</methodname>. <methodname>allTypes</methodname> retorna un "
+"<type>InputObjectState</type> que contiene todos los nombres de tipos de todos los objetos en un almacenamiento, que terminan con un nombre nulo. <methodname>allObjUids</"
+"methodname> retorna un <type>InputObjectState</type> que contiene todos los Uids de todos los objetos de un tipo dado terminado por el <methodname>Uid.nullUid()</methodname> especial."
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "Almacenamientos de objetos persistentes"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "Esta sección describe brevemente las características y optimizaciones para cada una de las implementaciones proporcionadas del almacenamiento de objetos persistentes. Los estados de objetos persistentes se mapean a la estructura del sistema de archivos soportado por el sistema operativo anfitrión. "
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "Funcionalidades comunes"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "Además de las funcionalidades mencionadas anteriormente todos los almacenamientos de objetos persistentes que se proveen siguen las siguientes reglas:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Cada estado de objeto se almacena en su propio archivo que se nombra utilizando el <code>Uid</code> del objeto."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "El tipo de un objeto (tal como es dado por la operación <methodname>type()</methodname>) determina el directorio en el cual se pone el objeto. "
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "Todos los almacenamientos tienen un directorio raíz común que es determinado cuando se configura JBossTS. El nombre del directorio es añadido automáticamente al principio de cualquier información raíz especifica del almacenamiento. "
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Todos los almacenamientos tienen la noción de un directorio raíz localizado que automáticamente se añade al principio al tipo del objeto para determinar el nombre final del directorio. El nombre raíz localizado se especifica cuando se crea el almacenamiento. Por defecto el nombre raíz localizado es <code>defaultStore</code>. "
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "El almacenmiento de sombras"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+"Esta es la versión original del almacenamiento de objetos tal como se proveía en lanzamientos anteriores y es implementada por la clase <classname>ShadowingStore</"
+"classname>. Es simple pero despaciosa. Utilice archivos en parejas para representar objetos (la versión sombra y la versión guardada) y los archivos se abren, se bloquean, se desbloquean y se cierran en cada interacción con el almacenamiento de objetos. Por lo tanto se puede perder bastante tiempo en el sistema con tan sólo abrir, cerrar o renombrar archivos, operaciones que son bastante caras. "
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos entonces el tipo de este almacenamiento es <type>ShadowingStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "No bloqueo a nivel de archivos "
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr "Ya que los objetos transacionales se controlan concurrentemente por medio de <methodname>LockManager</methodname>, no es necesario imponer bloqueo adicional a nivel de archivos, como lo hace la implementación básica de ShadowingStore. Por lo tanto, la implementación predeterminada del almacenamiento de objetos para JBossTS, <methodname>ShadowNoFileLockStore</methodname>, depende del bloqueo a nivel del usuario. Esto lo habilita para proporcionar un mejor rendimiento que la implementación <methodname>ShadowingStore</methodname>. "
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>ShadowNoFileLockStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "El almacenamiento hash"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "El <code>HashedStore</code> tiene la misma estructura para los estados de objetos que los almacenamientos de sombras pero tiene una estructura de directorio alterna que funciona mejor para almacenar grandes números de objetos del mismo tipo. El utilizar este almacenamiento los objetos son dispersos entre un grupo de directorios al aplicar una función hash al Uid del objeto. Por defecto se utilizan 255 sub-directorios. Sin embargo, esto se puede sobreescribir configurando la variable de entorno <code>HASHED_DIRECTORIES</code> adecuadamente."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "Si se sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>HashedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"Ya que los objetos transaccionales son controlados concurrentemente por medio de "
+"<methodname>LockManager</methodname>, no es necesario imponer bloqueo adicional a nivel de archivos, ya que la implementación básica "
+"<methodname>ShadowingStore</methodname> lo hace. Por lo tanto, la implementación predeterminada del almacenamiento de objetos para JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, depende del bloqueo a nivel del usuario. Esto lo habilita para proporcionar mejor rendimiento que la implementación "
+"<methodname>ShadowingStore</methodname>."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "El <methodname>HashedStore</methodname> tiene la misma estructura para los estados de objetos que los almacenamientos sombras pero tiene una estructura de directorio alterna que funciona mejor para almacenar grandes número de objetos del mismo tipo. Al utilizar este almacenamiento los objetos son dispersados a través de un grupo de directorio aplicando una función hash al Uid del objeto. Por defecto se utilizan 255 sub-directorios. Sin embargo, esto se puede sobreescribir configurando la variable de entorno <code>HASHED_DIRECTORIES</code> de acuerdo con esto."
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "El almacenamiento JDBC"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+"El <methodname>JDBCStore</methodname> utiliza una base de datos JDBC para guardar estados de objetos persistentes; cuando se utiliza junto con los objetos transaccionales para transacciones anidadas Java API hay sopporte disponible. En la implementación actual, todos los estados de los objetos se almacenan como objetos binarios grandes (BLOBs del inglés Binary Large Objects) "
+"dentro de la misma tabla. La limitación en el tamaño del estado del objeto se impone utilizando BLOBs de 64k; si se intenta almacenar un estado de objeto que excede este "
+"límite se presentará un error en la salida y el estado no se almacenará. Posteriormente se forzará a que la transacción se deshaga."
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"Al utilizar el almacenamiento de objetos JDBC, la aplicación debe proporcionar una implementación de la siguiente interfaz ubicada en el paquete <code>com.arjuna."
+"ats.arjuna.objectstore</code>:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "La implementación de esta clase es la responsable de proporcionar la <emphasis>Connection</emphasis> que será utilizada por el JDBC ObjectStore para guardar y reestablecer los estados de objetos:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 ""
+"<methodname>getConnection</methodname>: retorna la conexión a utilizar. Este método se llamará cuando se requiera una conexión y la "
+"implementación debe utilizar la política que sea necesaria para determinar que conexión retornar. Este método no necesita retornar la misma instancia de conexión más de una vez."
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: este método se llamará para retornar una de las conexiones adquiridas del getConnection. Las conexiones se retornan si ocurre algún error al utilizarlas."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: este se puede utilizar para pasar información arbitraria adicional a la implementación."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"El almacenamiento de objetos JDBC inicialmente pedirá el número de conexiones definidas en la propiedad <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> y no utilizará más de las que están definidas en la propiedad "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+"La implementation de la interfaz <interfacename>JDBCAccess</interfacename> "
+"a utilizar se debe configurar en la variable de la propiedad <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>."
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>JDBCStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"Se puede utilizar un almacenamiento de objetos JDBC para administrar el registro de transacciones. En este caso, la implementación del registro de transacciones se debe configurar como <property>JDBCActionStore</property> y la implementación <methodname>JDBCAccess</"
+"methodname> se debe propocionar a través de la variable de la propiedad <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>. En este caso, el nombre predeterminado de la tabla es JBossTSTxTable."
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "Es posible utilizar la misma implementación JDBCAccess para el almacenamiento de objetos del usuario y el registro de transacciones. "
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "El almacenamiento en caché"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "Este almacenamiento de objetos utilizó el almacenamiento de objetos con hash pero no lee ni escribe estados en el almacenamiento persistente de copias de seguridad de manera inmediata. Mantiene los estados en un caché de memoria volátil y vacia el caché de manera periódica o cuando está lleno. La semántica de fallos asociada con este almacenamiento de objetos es diferente de los almacenamientos normales de objetos persistentes ya que una falla podría hacer que se pierdan estados que se encuentran en el caché."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>CachedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "El almacenamiento se puede configurar con las siguientes propiedades:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> establece el número de almacenamientos internos sobre los cuales realizar hash en los estados. El valor predeterminado es 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> es el tamaño máximo al que puede llegar el caché antes de que el vaciado tenga lugar. Por defecto es 10240 bytes."
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> es el número máximo de objetos removidos que el caché puede contener antes de que se dispare el vaciado. Por defecto, las llamadas para remover un estado que se encuentra en el caché simplemente removerán el estado del caché, pero dejarán una entrada en blanco (en vez de remover la entrada inmediatamente, lo cual afectaría el rendimiento del caché). Cuando se dispara, estas entradas se remueven del caché. El valor predeterminado es dos veces el tamaño del hash."
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> es el número máximo de objetos que se permiten construir en el caché antes de que se vacie. El valor predeterminado es 100."
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> configura el tiempo en milisegundos para vaciar el caché periódicamente. Por defecto es 120 segundos."
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> determina si vaciado del caché se debe sincronizar con el disco. Por defecto es OFF. Para habilitarlo configúrelo como ON."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,502 @@
+# translation of Appendix_B.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-25 13:19+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "Definiciones de clase"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "Este apéndice contiene una sinopsis de esas clases que el programador de aplicaciones utiliza usualmente. El objetivo de este apéndice es brindar un referencia rápida sobre estas clases para utilizarse al escribir aplicaciones en TxCore. Para mayor claridad sólo se darán las interfaces públicas y protegidas de las clases. "
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "Biblioteca de clases "
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Administrador de bloqueos"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,23 @@
+# translation of Author_Group.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-25 13:20+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Grupo de documentación de Red Hat"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,43 @@
+# translation of Book_Info.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-25 13:23+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "Manual para programadores JBoss TS "
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "JBoss Enterprise SOA Platform"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "Este libro es la edición de la plataforma de aplicaciones empresariales del manual para programadores de JBoss TS "
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1030 @@
+# translation of Chapter.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 10:30+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "Sinopsis"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"Este capítulo contiene una descripción del uso de la máquina de transacciones <classname>TxCore</"
+"classname> y las clases y funcionalidades de los <firstterm>objetos transaccionales para "
+"Java</firstterm>. Las clases mencionadas en este capítulo son la clave para escribir aplicaciones tolerantes a fallas utilizando "
+"transacciones. Por lo tanto, después de describirlas las vamos a aplicar en la construcción de una aplicación simple. Las clases que vamos a describir en este capítulo se pueden encontrar en los paquetes <classname>com.arjuna.ats.txoj</classname> y "
+"<classname>com.arjuna.ats.arjuna</classname>."
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – la máquina de transacciones"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+"Con el fin de mantenerse en línea con la perspectiva orientada a objetos, los mecanismos que se necesitan para construir aplicaciones confiables se presentan a los porgramadores de una manera orientada a los objetos. Algunos mecanismos deben ser heredados, por ejemplo, el control de concurrencia y la administración de estado, mientras que otros mecanismos tal como el almacenamiento de objetos y de transacciones se implementan como objetos <classname>TxCore</"
+"classname> que se crean y se manipulan como cualquier otro objeto. "
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"Cuando el manual habla sobre el uso de funcionalidades como el control de concurrencia y de persistencia asume que se están utilizando las clases de <emphasis>Objetos transaccionales para Java</"
+"emphasis> (TXOJ del inglés Transactional Objects for Java). Si este no es el caso entonces el programador es el responsable de todos estos asuntos. "
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 ""
+"<classname>TxCore</classname> explota las técnicas orientadas a objetos para presentarle a los "
+"programadores un grupo de herramientas de clases Java desde donde las clases de la aplicación pueden heredar para obtener las propiedades deseadas tal como persistencia y control de concurrencia. Estas clases forman una jerarquía, parte de la cual se muestra a continuación y que también se describirá más adelante en este documento."
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Jerarquía de clases Txcore "
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+"Aparte de especificar los ámbitos de las transacciones y de configurar los bloqueos apropiados dentro de los objetos, el programador de aplicaciones no tiene ninguna otra responsabilidad: <classname>TxCore</classname> y <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) garantizan que los objetos transaccionales sean registrados y dirigidos por la transacciones apropiadas y que los mecanismos de recuperación de fallos se invoquen de manera automática en el evento de una falla."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Guardar el estado de objetos"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"<classname>TxCore</classname> necesita poder recordar el estado de un objeto debido a varios propósitos, incluyendo la recuperación (el estado representa algun estado pasado del objeto) y la persistencia (el estado representa el estado final "
+"de un objeto al terminar la aplicación). Ya que estos requerimientos tiene funcionalidades comúnes todas se implementan utilizando el mismo mecanismo: las clases <classname>InputObjectState</classname> y "
+"<classname>OutputObjectState</classname>. Las clases mantienen una lista interna en las cuales las instancias de los tipos estándares se pueden empacar contiguamente "
+"(desempacadas) utilizando operaciones <command>pack</command> (<command>unpack</"
+"command>) de manera apropiada. Este buffer se modifica de tamaño automáticamente tal como se necesite en caso de que no tenga suficiente espacio. Las instancias se almacenan en el buffer en una forma estándar (también llamada network byte order) para hacerlas independientes de la máquina. Cualquier otro formato independiente de la arquitectura (tal como XDR "
+"o ASN.1) se puede implementar con simplemente reemplazar las operaciones con las que sean apropiadas para la codificación requerida."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "El almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "Las implementaciones de persistencia pueden ser afectadas por restricciones impuestas por el Java SecurityManager. Por lo tanto, el almacenamiento de objetos que viene junto con <classname>TxCore</classname> se implementa utilizando técnicas de interfaz/implementación. La distribución actual tiene implementaciones las cuales escriben estados de objetos en el sistema de archivos locales o en la base de datos y las implementaciones remotas, en donde la interfaz utiliza un stub cliente (proxy) para servicios remotos. "
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "A los objetos persistentes se les asignan identificadores únicos (instancias de la clase Uid) cuando se crean y esto se utiliza para identificarlos dentro del almacenamiento de objetos. Los estados se leen utilizando la operación <literal>read_committed</literal> y las operaciones <literal>write_(un)committed</literal> las escriben. "
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "Recuperación y persistencia "
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"En la raíz de la jerarquía de las clases se encuentra la clase <classname>StateManager</"
+"classname>. Esta clase es la responsable de la activación y desactivación de objetos y la recuperación de objetos. La firma simplificada de la clase es: "
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "Se asume que los objetos pueden ser de tres sabores. Pueden ser simplemente recuperables, en cuyo caso <classname>StateManager</classname> tratará de generar y mantener información de recuperación apropiada para el objeto. Dichos objetos tienen tiempos de vida que no exceden el programa de la aplicación que los crea. Los objetos pueden ser recuperables y persistentes, en cuyo caso se asume que el tiempo de vida del objeto es mayor que el de crear o acceder a una aplicación de manera que además de mantener información de recuperación <classname>StateManager</classname> tratará de cargar automáticamente (descargar) cualquier estado persistente existente para el objeto llamando la operación de activación (desactivación) en el momento apropiado. Finalmente, puede que los objetos no posean ninguna de estas capacidades, en cuyo caso no se mantiene ninguna información de recuperación y tampoco se intenta activar/desactivar objetos."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Si un objeto es recuperable o recuperable y persistente entonces el "
+"<classname>StateManager</classname> invocará las operaciones "
+"<command>save_state</command> (al realizar <command>deactivate</"
+"command>), y <command>restore_state</command> (al realizar activate) "
+"en varios puntos durante la ejecución de la aplicación. Estas operaciones las debe implementar el programador ya que el <classname>StateManager</"
+"classname> no puede detectar cambios de estado a nivel de usuario, (estamos examinando la generación "
+"automática de las operaciones predeterminadas <command>save_state</command> y "
+"<command>restore_state</command> permitiéndole al programador sobreescribir esto cuando el conocimiento especifico de la aplicación se puede utilizar para mejorar la eficiencia). Esto le da la habilidad al programador de decidir que partes del estado de un objecto se deben hacer persistentes. Por ejemplo, para una hoja de cálculo puede que no sea necesario el guardar todas las entradas si algunos valores simplemente se pueden volver a calcular. La implementación <command>save_state</command> para una clase "
+"<classname>Example</classname> que tiene variables de miembros enteros llamadas A, B "
+"y C podrían ser simplemente:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+"Se asume que los objetos pueden tener tres sabores posibles. Pueden ser simplemente <emphasis>recoverable</emphasis>, en cuyo caso <classname>StateManager</"
+"classname> tratará de generar y mantener información de recuperación apropiada para el objeto. Tales objetos tienen tiempos de vida que no excenden el programa de la aplicación que los creó. Los objetos también pueden ser <emphasis>recuperables y persistentes</emphasis>, en cuyo caso se asume que el tiempo de vida del objeto es mayor que el de la aplicación creadora o de la aplicación accediendo de manera que además de mantener la información de recuperación <classname>StateManager</classname> intentará cargar de manera automática (descargar) cualquier estado persitente existente para el objeto llamando la operación <classname>activate</classname> (<classname>deactivate</"
+"classname>) en momentos apropiados. Finalmente, puede que los objetos no posean ninguna de estas habilidades, en cuyo caso nunca se mantiene información de recuperación y tampoco se intenta la activación/desactivación de manera automática. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Si un objeto es <emphasis>recuperable</emphasis> o <emphasis>recuperable "
+"y persistente</emphasis> entonces el <classname>StateManager</classname> invocará las operaciones <command>save_state</command> (al realizar "
+"<command>deactivate</command>) y <command>restore_state</command> (al realizar <command>activate</command>) en varios puntos durante la ejecución de la aplicación. Estas operaciones deben ser implementadas por el programador ya que el <classname>StateManager</classname> no puede detectar cambios en el estado a nivel de usuario, (estamos examinando la generación automática de las operaciones "
+"<classname>save_state</classname> y <classname>restore_state</classname>, permitiéndole al programador sobreescribir esto cuando el conocimiento especifico de la applicación se puede utilizar para mejorar la eficiencia). Esto le da la habilidad al programador de decidir las partes del estado de un objeto que se deben hacer persistentes. Por ejemplo, puede que para una hoja de cálculo no sea necesario el guardar todas las entradas si algunos valores se pueden volver a calcular. La implementación "
+"<classname>save_state</classname> para una clase "
+"<classname>Example</classname> que tiene variables con números enteros llamadas A, B y C pueden ser simplemente:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"Es necesario para todos los métodos <command>save_state</command> y "
+"<command>restore_state</command> el llamar a <classname>super.save_state "
+"</classname> y a <classname>super.restore_state</classname>. Esto es para atender las mejoras en los mecanismos de recuperación de fallos."
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "El ciclo de vida de un objeto transaccional para Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"Se asume que un objeto persistente no en uso se debe mantener en un estado <emphasis>pasivo</"
+"emphasis> con su estado residiendo en un almacenamiento de objetos y <emphasis>activado</emphasis> en demanda. El ciclo de vida fundamental de un objeto persistente en <emphasis>TXOJ</emphasis> se puede ver en <xref linkend="
+"\"figure_2\"/>."
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "El ciclo de vida de un objeto persistente. "
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "El objeto es inicialmente pasivo y es almacenado en el almacenamiento de objetos como una instancia de la clase <classname>OutputObjectState</classname>."
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+"Cuando la aplicación lo requiere el objeto es activado automáticamente al leerlo desde el almacenamiento utilizando una operación <command>read_committed</command> y luego es convertido de una instancia <classname>InputObjectState</"
+"classname> a un objeto completamente desarrollado por la operación "
+"<command>restore_state</command> del objeto."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "Cuando la aplicación ha terminado con el objeto, este es desactivado convirtiéndolo en una instancia <classname>OutputObjectState</classname> usando la operación <command>save_state</command> y luego se restaura de regreso al almacenamiento de objetos como una copia sombra utilizando write_uncommitted. Esta copia sombra se puede guardar, sobreescribiendo la versión previa utilizando la operación <command>commit_state</command>. Normalmente el sistema de transacciones oculta la existencia de copias sombras del programador. La desactivación del objeto normalmente sólamente ocurre cuando la transacción a nivel superior dentro de la cual el objeto fue activado realiza la operación de guardar."
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "Durante su tiempo de vida, un objeto persistente se puede hacer activo y luego pasivo muchas veces."
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "El controlador de concurrencia"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "El controlador de concurrencia es implementado por la clase <classname>LockManager</classname>, la cual proporciona un comportamiento predeterminado sensible que al mismo tiempo le permite al programador sobreescribir si la semántica particular de la clase que se está programando lo considera necesario. Así como con el <classname>StateManager</classname> y la persistencia, las implementaciones del control de concurrencia se acceden por medio de interfaces. Así como proporciona acceso a servicios remotos, las implementaciones actuales de control de concurrencia que se encuentran disponibles para las interfaces incluyen: "
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "la implementación local disk/database, en donde se hacen persistentes los bloqueos al ser escrito en el sistema de archivos local o en la base de datos."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "una implementación puramente local, en donde los bloqueos se mantienen dentro de la memoria de la máquina virtual que los creó; esta implementación tiene un mejor rendimiento que el escribir bloques en el disco local, pero los objetos no se pueden compartir entre máquinas virtuales. Un punto importante a notar es que es un objeto Java básico sin requerimientos lo cual puede ser afectado por el SecurityManager"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "La interfaz primaria del programador hacia el controlador de concurrencia es por medio de la operación setlock. Por defecto, el sistema en tiempo de ejecución refuerza el bloqueo estricto de dos fases siguiendo una política de múltiples lectores, un sólo escritor objeto por objeto. Sin embargo, como se puede ver en la <xref linkend=\"figure_1\"/>, al heredar de la clase <classname>Lock</classname> es posible para los proveedores el brindar sus propias implementaciones de bloqueo con diferentes reglas de conflicto de bloqueos para habilitar el <firstterm>control de concurrencia especifico del tipo</firstterm>."
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "La adquisición de bloqueos está bajo el control del programdor (por necesidad) ya que el <classname>StateManager</classname> no puede determinar si una operación modifica un objeto , <classname>LockManager</classname> no puede determinar si una operación requiere un bloqueo de escritura o de lectura. Sin embargo, la liberación del bloqueo se encuentra bajo el control del sistema y no requiere más intervención por parte del programador. Esto asegura que la propiedad de dos fases se pueda mantener de manera correcta. "
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"La clase <classname>LockManager</classname> es la principal responsable de administrar peticiones para establecer un bloqueo en un objeto o liberar el bloqueo cuando sea apropiado. Sin embargo, debido a que se deriva del <classname>StateManager</"
+"classname>, también puede controlar cuando algunas de las funcionalidades heredadas se invocan. Por ejemplo, <classname>LockManager</classname> asume que el establecer un bloqueo de escritura implica que la operación de invocación debe estar a punto de modificar el objeto. Esto al mismo tiempo debe hacer que la información de recuperación se guarde si el objeto es recuperable. De manera similar, la adquisición exitosa de bloqueos causa que se invoque activate."
+
+#. 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 "El código a continuación muestra la manera en que podemos tratar de obtener un bloqueo de escritura en un objeto: "
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "La máquina de protocolo de transacciones"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "La máquina del protocolo de transacciones está representada por la clase <classname>AtomicAction</classname>, la cual utiliza <classname>StateManager</classname> con el fin de registrar suficiente información para mecanismos de recuperación de fallos para completar la transacción en el evento de fallos. Tiene métodos para iniciar y terminar la transacción y para aquellas situaciones en donde los programadores requieren el implementar sus propios recursos, métodos para registrarlos con la transacción actual. Ya que <emphasis>TxCore</emphasis> soporta subtransacciones, si una transacción se incia dentro del ámbito de una transacción que ya se encuentra ejecutando entonces será anidada de manera automática. "
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "<emphasis>TxCore</emphasis> es conciente de multi-hilos, lo cual le permite a cada hilo dentro de una aplicación el compartir una transacción o ejecutar dentro de su propia transacción. Por lo tanto, todas las clases <emphasis>TxCore</emphasis> también tienen seguridad de hilos."
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "El ejemplo simple que mostramos a continuación ilustra la relación entre activación, terminación y el guardar los cambios: "
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "La ejecución del código anterior implica la siguiente secuencia de actividades: "
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"Creación de vinculaciones a objetos persistentes; esto puede implicar la creación de objetos stub y una llamada a objetos remotos. En el ejemplo anterior, volvemos a vincular a un objeto persistente ya existente identificado por <literal>Name-A</"
+"literal> y un nuevo objeto persistente. Un sistema de nombres para objetos remotos mantiene el mapeo entre nombres de objetos y ubicaciones y se describe en un capítulo posterior. "
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "Inicio de la transacción atómica."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "Invocaciones de operaciones: como parte de una invocación dada la implementación del objeto es la responsable de asegurarse que está bloqueada en modo de escritura o de lectura (asumiendo que no hay conflicto de bloqueos) y se inicializa, si es necesario, con el último estado que se ha guardado en el almacenamiento de objetos. La primera vez que se adquiere un bloqueo en un objeto dentro de una transacción el estado del objeto se adquiere del almacenamiento de objetos, si es posible."
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "Guardar los cambios de la acción a nivel superior. Esto incluye el actualizar el estado de cualquiera de los objetos modificados en el almacenamiento de objetos. "
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "Rompimiento de las vinculaciones creadas anteriormente. "
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "La jerarquía de clases "
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+"Las clases principales que componen la jerarquía de clases de <emphasis>TxCore</"
+"emphasis> se ilustran a continuación."
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"Los programadores de aplicaciones tolerantes a fallas estarán preocupados principalmente con las clases <classname>LockManager</classname>, <classname>Lock</classname> "
+"y <classname>AtomicAction</classname>. Otras de las clases que pueden ser importantes para un programador son <classname>Uid</classname> y <classname>ObjectState</"
+"classname>. La mayoría de las clases <emphasis>TxCore</emphasis> se derivan de la clase base <classname>StateManager</classname>, la cual proporciona funcionalidades primitivas necesarias para administrar objetos persistentes y recuperables. Estas funcionalidades incluyen soporte para la activación y des-activación de objetos, "
+"y recuperación de objetos con base en estado. La clase <classname>LockManager</"
+"classname> utiliza las funcionalidades de <classname>StateManager</classname> y "
+"<classname>Lock</classname> para proporcionar el control de concurrencia (bloqueo de dos fases en la implementación actual) requerida para implementar la propiedad de seriabilidad para acciones atómicas. La implementación de funciones de acciones atómicas está soportado por <classname>AtomicAction</classname> y "
+"<classname>TopLevelTransaction</classname>."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+"La mayoria de las clases del sistema <emphasis>TxCore</emphasis> se derivan de la clase base <classname>StateManager</classname>, la cual proporciona funcionalidades primitivas necesarias para administrar objetos persistentes y recuperables. Estas funcionalidades incluyen el soporte para la activación y des-activación de objetos,y recuperación de objetos con base en el estado. La clase <classname>LockManager</"
+"classname> utiliza las funcionalidades de <classname>StateManager</classname> y brinda el control de concurrencia requerido para implementar la propiedad de "
+"seriabilidad de las acciones atómicas."
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"Considere un ejemplo simple. Asuma que <classname>Example</classname> es una clase persistente definido por el usuario derivada apropiadamente del <classname>LockManager</classname>. Una aplicación que contiene una transacción atómica Trans accede un objeto (llamado O) de tipo <classname>Example</"
+"classname> invocando la operación op1 la cual involucra los cambios de estado a O. La propiedad de seriabilidad requiere que se debe adquirir un bloqueo de escritura en O antes de modificarlo; por lo tanto el cuerpo de op1 debe contener una llamada a la operación <literal>setlock</literal> del controlador de concurrencia:"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr ""
+"La operación <literal>setlock</literal>, que la clase <classname>LockManager</classname> proporciona, realiza las siguientes funciones "
+"en este caso:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Verifique la compatibilidad de bloqueos de escritura con los bloqueos actuales y si lo permite: "
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"Llame el activador de la operación <classname>StateManager</classname> que se cargará, si todavía no lo ha hecho, el último estado persistente de O del almacenamiento de objetos. Después llame al modificador de la operación <classname>StateManager</classname>, el cual tiene el efecto de crear una instancia de "
+"<classname>RecoveryRecord</classname> o <classname>PersistenceRecord</"
+"classname> para O dependiendo de si O era persistente o no (el bloqueo es un bloqueo <literal>WRITE</literal> (de escritura) así que el estado viejo del objeto se debe retener antes de su modificación) e insertarlo en el <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 "Cree e inserte una instancia LockRecord en la the RecordList de transacciones."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"Ahora suponga que la acción <literal>Trans</literal> se aborta un poco después de que se ha adquirido el bloqueo. Entonces la operación para deshacer de <classname>AtomicAction</classname> procesará la instancia <classname>RecordList</"
+"classname> asociada con <literal>Trans</literal> invocando una operación <literal>Abort</literal> apropiada en los varios records. La "
+"implementación de esta operación por la clase <classname>LockRecord</classname> "
+"liberará el bloqueo <literal>WRITE</literal> mientras que el de <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> restaurará el estado anterior de O."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr "Es importante darse cuenta de que todo el trabajo realizado antes lo hace de manera automática <emphasis>TxCore</emphasis> en nombre del programador de la aplicación. El programador sólo necesita iniciar la transacción y establecer un bloqueo apropiado; <emphasis>TxCore</emphasis> y los <emphasis>objetos transaccionales para Java</emphasis> se preocupan del registro de los participantes, la persistencia, el control de concurrencia y la recuperación. "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1802 @@
+# translation of Chapter_02.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 11:53+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "Uso de TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+"En esta sección vamos a describir <emphasis>TxCore</emphasis> y los "
+"<emphasis>objetos transaccional para Java</emphasis> en más detalle y vamos a ver cómo se puede utilizar para construir aplicaciones transaccionales."
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "Administración de estado"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "Estados de objetos"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"<emphasis>TxCore</emphasis> necesita poder recordar el estado de un objeto por varias razones, incluyendo la recuperación (el estado representa algún estado pasado del objeto) y la persistencia (el estado representa el estado "
+"final de un objeto al terminar una aplicación). Debido a que todos estos requerimientos necesitan funcionalidades comunes, todas se implementan utilizando el mismo mecanismo - las clases <classname>Input/OutputObjectState</classname> y <classname>Input/OutputBuffer</classname>."
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"La clase <classname>Input/OutputBuffer</classname> mantiene una lista interna de las instancias en las que se pueden empacar (desempacar) contiguamente los tipos estándares Java utilizando las operaciones de empaque (desempaque). El tamaño de este buffer se modifica cuando se necesita en caso de que no tenga suficiente espacio. Todas las "
+"instancias se almacenan en el buffer en una forma estándard (también se llama network "
+"byte order) para hacerla independientes de la máquina."
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+"La clase <classname>Input/OutputObjectState</classname> proporciona todas las funcionalidades de <classname>Input/OutputBuffer</classname> (por medio de herencia) pero añade dos variables de instancias adicionales que significan el Uid y el tipo del objeto para el cual la instancia <classname>Input/OutputObjectState</"
+"classname> es una imagen comprimida. Estas se utilizan al acceder el almacenamiento de objetos durante el almacenamiento y recuperación del estado del objeto."
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "El almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "El almacenamiento de objetos que viene junto con <emphasis>TxCore</emphasis> tiene deliberadamente una interfaz más bien restringida para que se pueda implementar de varias maneras. Por ejemplo, los almacenamientos de objetos se implementan en una memoria compartida; en el sistema de archivos Unix (en varias formas diferentes); y como un almacenamiento accesible de manera remota. Puede encontrar más información completa sobre los almacenamientos de objetos en <emphasis>TxCore</emphasis> en el apéndice. "
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 "Como con todas las clases <emphasis>TxCore</emphasis> los almacenamientos de objetos predeterminados son implementaciones puras de Java; para acceder la memoria compartida y otras implementaciones de almacenamiento de objetos más complejas es necesario utilizar métodos nativos."
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"Todos los almacenamientos de objetos mantienen y recuperan instancias de la clase "
+"<classname>Input/OutputObjectState</classname>. Estas instancias son nombradas por el Uid y el tipo del objeto que representan. Los estados se leen usando la operación <command>read_committed</command> y el sistema los escribe utilizando la operación <command>write_uncommitted</command>. Bajo operación normal los nuevos estados de objetos no sobreescriben los estados antiguos de objetos si no que los escriben como copias sombras. Estas sombras reemplazan el original sólamente cuando se invoca la operación <command>commit_state</command>. Normalmente toda interacción con el almacenamiento de objetos es realizada por los componentes del sistema <emphasis>TxCore</"
+"emphasis> en tanto sea apropiado y por lo tanto la existencia de cualquier versión sombra de los objetos en el almacenamiento se encuentra escondida del programador."
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"Cuando un objeto transacción está guardando cambios es necesario que haga persistentes ciertos cambios de estado con el fin de que pueda recuperar en el evento de una falla o que pueda continuar guardando los cambios o que deshaga la transacción. Cuando utiliza los <emphasis>objetos transaccionales para Java</emphasis>, <emphasis>TxCore</"
+"emphasis> se ocupa de esto de manera automáticamente. Para garantizar propiedades ACID, estos cambios de estados deben ser vaciados en la implementación del almacenamiento de persistencia antes de que la transacción pueda proceder a guardar los cambios; si no se vacían, la aplicación puede asumir que la transacción ha guardado los cambios cuando en realidad los cambios del estado puede que aún se encuentren dentro de un caché del sistema en operación y es posible que se pierda en caso de una falla subsecuente de la máquina. Por defecto, <emphasis>TxCore</emphasis> se asegura de que tales cambios en el estado sean vaciados. Sin embargo, el hacer esto puede imponer una penalización importante en el rendimiento de la aplicación. Para prevenir el vaciado de estados de objetos transaccionales configure la variable <literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> como OFF. "
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr "Selección de una implementación de almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"<emphasis>TxCore</emphasis> viene con soporte para varias implementaciones diferentes de almacenamiento de objetos. El apéndice describe estas implementaciones, la manera de seleccionar y configurar una implementación dada (utilizando la variable de la propiedad <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal>) objeto por objeto e indica la manera en que se pueden proveer implementaciones adicionales."
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+"La clase <emphasis>TxCore</emphasis> <classname>StateManager</classname> "
+"administra el estado de un objeto y proporciona todos los mecanismos de soporte básicos requeridos por un objeto para propósitos de administración de estado. "
+"<classname>StateManager</classname> es el responsable de crear y registrar recursos apropiados relacionados con la persistencia y la recuperación del objeto transaccional. Si una transacción es anidada entonces <classname>StateManager</classname> también propagará estos recursos entre transacciones hijos y sus padres en el momento de guardar los cambios."
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+"Se asume que los objetos en <emphasis>TxCore</emphasis> pueden tener tres sabores posibles. Pueden ser simplemente recuperables, en cuyo caso "
+"<classname>StateManager</classname> tratará de generar y mantener información de recuperación "
+"apropiada para el objeto (como instancias de la clase "
+"<classname>Input/OutputObjectState</classname>) . Tales objetos tienen tiempos de vida que no exceden el programa de la aplicación que los crea. Los objetos pueden ser recuperables y persistentes, en cuyo caso se asume que el tiempo de vida del objeto es mayor que el de la aplicación creadora o la aplicación que está accediendo para que además de mantener la información de recuperación el <classname>StateManager</classname> tratará de cargar (descargar) de manera automática cualquier estado persistente existente para el objeto llamando la operación <command>activate</command> (<command>deactivate</command>) en el momento apropiado. Finalmente, puede que los objetos no posean ninguna de estas habilidades, en cuyo caso no se mantienen ninguna información de recuperación y tampoco se intenta la activación/"
+"desactivación del objeto de manera automática. Esta propiedad del objeto se selecciona en el momento de construcción del objeto y no se puede cambiar después. Por lo tanto un objeto no puede ganar (o perder) habilidades de recuperación en un momento arbitrario durante su tiempo de vida."
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"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 objeto es recuperable (o persistente) entonces <classname>StateManager</"
+"classname> invocará las operaciones <command>save_state</command> (al realizar <command>deactivation</command>), <command>restore_state</"
+"command> (al relaizar activate) y tipo en varios puntos durante la ejecución de la aplicación. Estas operaciones se deben implementar por el programador ya que el <classname>StateManager</classname> no tiene acceso a una descripción en tiempo de ejecución del diseño de un objeto Java arbitrario en la memoria y por lo tanto no puede implementar una política predeterminada para convertir la versión en memoria del objeto a su forma pasiva. Sin embargo, las capacidades que el <classname>Input/OutputObjectState</classname> proporciona hacen que la escritura de estas rutinas sea más bien simple. Por ejemplo, la implementación <command>save_state</"
+"command> para una clase <classname>Example</classname> que tenía las variables llamadas A, B y C podría ser simplemente:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 "Con el fin de soportar la recuperación en caso de fallos para objetos persistentes es necesario que todos los métodos <command>save_state</command> y <command>restore_state</command> llamen a <command>save_state</command> y a <command>restore_state</command>"
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "El método type se utiliza para determinar la ubicación en el almacenamiento de objetos en donde el estado de las instancias de esa clase se guardarán y ultimadamente se resstablecerán. De hecho este puede ser cualquier cadena válida. Sin embargo, debe evitar el utilizar el caracter  (#) ya que está reservado para directorios especiales que <emphasis>TxCore</emphasis> requiere."
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+"La operación <command>get_uid</command> de <classname>StateManager</"
+"classname> proporciona acceso de sólo lectura al nombre del sistema interno de un objeto para cualquiera que sea el propósito que el programador requiera (tal como la registración del nombre "
+"en un servidor de nombres). El valor del nombre del sistema interno sólo se puede configurar cuando un objeto es inicialmente construido - ya sea por la provisión de un parámetro explícito o generando un nuevo identificador cuando se crea el objeto."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 ""
+"El método <command>destroy</command> se puede utilizar para remover el estado de un objeto "
+"del almacenamiento de objetos. Esta es una operación atómica y por lo tanto sólo removerá el estado si la transacción a nivel superior dentro de la cual se invoca eventualmente guarda los cambios. El programador debe obtener acceso exclusivo al objeto antes de invocar esta operación."
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "Debido a que la recuperación y la persistencia tienen esencialmente requerimientos que se complementan (la única diferencia es donde almacena la información del estado y su propósito) <classname>StateManager</classname> effectivamente combina la administración de estas dos propiedades en un sólo mecanismo. Es decir, utiliza instancias de la clase Input/OutputObjectState para propósitos de recuperación y persistencia. Un argumento adicional que se le pasa a las operaciones <command>save_state</command> y <command>restore_state</command> le permite al programador determinar el propósito para el cual cualquier invocación dada se está realizando y por lo tanto permite guardar información diferente para propósitos de recuperación y persistencia. "
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "Modelos de objetos "
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "<emphasis>TxCore</emphasis> soporta dos modelos para objetos, los cuales como lo vamos a mostrar afectan la manera en que se implementa el estado de un objeto y el control de concurrencia:"
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>: sólo existe una copia del objeto dentro de la aplicación; esta residirá dentro de una MVJ y todos los clientes deben dirigir sus invocaciones a este servidor. Este modelo proporciona mejor rendimiento, pero representa un sólo punto de falla y en entornos multi-hilos puede que no proteja el objetode daño si un sólo hilo falla."
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Modelo de objeto single"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE: lógicamente existe una sóla instancia del objeto, pero hay copias distribuidas en diferentes MVJ; el rendimiento de este modelo es peor que el modelo SINGLE, pero proporciona mejor aislamiento de fallas."
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Modelo de objetos múltiples "
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"El modelo predeterminado es SINGLE. El programador puede sobreescribir esto objeto por objeto proporcionando una instancia apropiada de la clase <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> en la construcción del objeto. "
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "El modelo se puede cambiar entre cada instanciación sucesiva del objeto, por ejemplo, es necesario que no sea la misma durante el tiempo de vida del objeto. "
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr ""
+"Para brindar una clase <classname>ObjectName</classname> apropiada, es "
+"necesario realizar los siguientes pasos:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "cree una nueva instancia de <classname>ObjectName</classname>."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"configure el atributo del modelo del objeto usando el nombre <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>."
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "Por ejemplo:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Resumen "
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"En resumen, la clase <emphasis>TxCore</emphasis> <classname>StateManager</"
+"classname> administra el estado de un objeto y proporciona todos los mecanismos básicos de "
+"soporte requeridos por un objeto para propósitos de administración de estado. Algunas operaciones deben ser definidas por el desarrollador de la clase. Estas operaciones son: "
+"<command>save_state</command>, <command>restore_state</command> y "
+"<command>type</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"Se invoca cuando sea necesario guardar el estado de un objeto para uso futuro - principalmente para propósitos de recuperación o persistencia. El parámetro "
+"<literal>ObjectType</literal> indica la razón por la cual <emphasis>TxCore</emphasis> invocó "
+"<command>save_state</command>. Esto habilita al programador a guardar diferentes partes de la información en el <classname>OutputObjectState</classname> proporcionado como el primer parámetro "
+"dependiendo de si el estado se necesita para propósitos de recuperación o persistencia. Por ejemplo, los apuntadores a otros objetos <emphasis>TxCore</emphasis> se pueden guardar simplemente como apuntadores para propósitos de recuperación pero como Uid para propósitos de persistencia. Como se mostró anteriormente, la clase <classname>OutputObjectState</"
+"classname> proporciona operaciones convenientes para permitir el guardar las instancias de todos los tipos básicos en Java. Con el fin de soportar la recuperación de fallas para objetos persistentes es necesario que todos los métodos <command>save_state</"
+"command> llamen al <command>super.save_state</command>."
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "<command>save_state</command> asume que un objeto es consistente internamente y que todas las variables guardadas tienen valores válidos. Es la responsabilidad del programador asegurarse de que este es el caso."
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 "Se invoca cuando el estado de un objeto necesita reestablecerse a uno proveido. Una vez más el segundo parámetro permite diferentes interpretaciones del estado proporcionado. Con el fin de soportar la recuperación de fallos para objetos persistentes es necesario que todos los métodos <command>restore_state</command> llamen al <command>super.restore_state</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "Tipo de cadena ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"El mecanismo de persistencia <emphasis>TxCore</emphasis> requiere una manera de determinar el tipo de un objeto como cadena de manera que pueda guardar/reestablecer el estado del objeto a/desde el almacenamiento de objetos. Por convención esta "
+"información indica la posición de la clase en la jerarquía. Por "
+"ejemplo, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "Considere la siguiente clase básica <classname>Array</classname> derivada de la clase <classname>StateManager</classname> (en este ejemplo, para ilustrar la manera de guardar y restaurar el estado de un objeto, la variable highestIndex se utiliza para rastrear el elemento más alto de la lista que tienen un valor que no es cero):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+"Las operaciones <command>save_state</command>, <command>restore_state</command> y "
+"<command>type</command> se pueden definir así:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Control de concurrencia y administración de bloqueos"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+"La información de control de concurrencia dentro de <emphasis>TxCore</emphasis> se mantiene por medio de bloqueos. Los bloqueos que se requiere que se compartan entre objetos en diferentes procesos se pueden mantener dentro de un almacenamiento de bloqueos, similar a la función de almacenamiento de objetos presentada anteriormente. El almacenamiento de bloqueos que viene junto con "
+"<emphasis>TxCore</emphasis> de manera deliberada tiene una interfaz más bien restringida para que se pueda implementar de varias formas. Por ejemplo, los almacenamientos de bloqueos se implementan el la memoria compartida; en el sistema de archivos Unix (en varias formas diferentes); y como un almacenamiento accesible de manera remota. En el apéndice encontrará más información en relación con los almacenamientos de objetos disponibles en <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "Como con todas las clases <emphasis>TxCore</emphasis> los almacenamientos de bloqueos predeterminados son puras implementaciones Java; para acceder la memoria compartida y otras implementaciones de almacenamiento de bloqueos más complejos es necesario utilizar métodos nativos."
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Selección de una implementación de almacenamiento de bloqueos"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"<emphasis>TxCore</emphasis> viene con soporte para varias implementaciones de almacenamiento de objetos diferentes. Si el modelo de objeto que se utiliza es SINGLE, entonces no se requiere almacenamiento de bloqueos para mantener los bloqueos ya que la información sobre el objeto no se exporta de este. Sin embargo, si se utiliza el modelo MULTIPLE, entonces puede que diferentes entornos en tiempo de ejecución (procesos, máquinas virtuales Java)necesiten compartir información de control de concurrencia. El tipo de implementación del almacenamiento de bloqueos a utilizar se puede especificar para todos los objetos dentro de un entorno de ejecución dado utilizando la variable de la propiedad <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>. Actualmente esto puede tener uno de los siguientes valores:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "Esta es una implementación en memoria, la cual no permite compartir, por defecto, información almacenada entre entornos de ejecución. El programador de la aplicación es el responsable de compartir la información almacenada."
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"Esta es la implementación predeterminada y almacena información de bloqueo dentro del sistema de archivos local. Por lo tanto, los entornos de ejecución que comparten el mismo almacenamiento de archivos puede compartir información de control de concurrencia. La raíz del sistema de archivos en la cual se escribe la información de bloqueo se escribe en el directorio <filename>LockStore</"
+"filename> dentro del directorio de instalación <emphasis>TxCore</emphasis>. Esto se puede sobreescribir en tiempo de ejecución configurando apropiadamente la variable de la propiedad <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> o poniendo la ubicación dentro de la<literal>CLASSPATH</literal>:"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>o</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "Si ninguno de estos enfoques se toman entonces la ubicación predeterminada será al mismo nivel que el directorio <filename>etc</filename> de la instalación. "
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+"El controlador de concurrencia es implementado por la clase "
+"<classname>LockManager</classname>, la cual proporciona un comportamiento predeterminado sensible mientras que al mismo tiempo le permite al programador sobreescribir si se considera necesario por la semántica en particular de la clase que se está programando. La interfaz primaria del programador al controlador de concurrencia se encuentra por medio del la operación setlock. Por defecto, el sistema en tiempo de ejecución <emphasis>TxCore</emphasis> refuerza dos fases estrictas de bloqueo después de un lector múltiple, una política de escritura única objeto por objeto. La adquisición de bloqueos se encuentra bajo el control del programador ya que <classname>StateManager</classname> no puede determinar si una operación "
+"modifica un objeto, <classname>LockManager</classname> no puede determinar si una operación requiere un bloqueo de lectura o de escritura. Sin embargo el la libreación de bloqueos normalmente se encuentra bajo control del sistema y no requiere más intervención del programador. Esto asegura que la propiedad de dos fases se pueda mantener de manera correcta."
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"La clase <classname>LockManager</classname> es la principal responsable de administrar peticiones para establecer un bloqueo en un objeto o para liberar un bloqueo apropiadamente. Sin embargo, ya que se deriva del <classname>StateManager</"
+"classname>, también puede controlar cuando algunas de las funciones heredadas se invocan. Por ejemplo, si se otorga una petición para establecer un bloqueo entonces el "
+"<classname>LockManager</classname> invoca modificado directamente asumiendo que la modificación de un bloqueo de escritura implica que la operación de invocación debe estar a punto de modificar el objeto. A su vez esto puede hacer que se guarde la información de recuperación si el objeto es recuperable. De una manera similar, la adquisición de un bloqueo exitoso hace que se invoque <command>activate</command>."
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"Por lo tanto, <classname>LockManager</classname> es directamente el responsable de "
+"activar/desactivar los objetos persistentes y registrar "
+"<classname>Resources</classname> para administrar el control de concurrencia. Por dirigir la clase <classname>StateManager</classname>, también es la responsable de registrar <classname>Resources</classname> para la manipulación de estado persistente/recuperable y recuperación de objetos. El programador de aplicaciones "
+"simplemente establece bloqueos apropiados, inicia y para transacciones y "
+"extiende los métodos <command>save_state</command> y <command>restore_state</"
+"command> del <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "La operación <command>setlock</command> debe ser parametrizada con el tipo de bloqueo requerido (<literal>READ</literal> / <literal>WRITE</literal>)y el número de reintentos para adquirir el bloqueo antes de darse por vencido. Si tiene lugar un conflicto de bloqueos, tendrá lugar uno de los siguientes escenarios:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"Si el valor retry es igual al <literal>LockManager.waitTotalTimeout</"
+"literal> entonces el hilo que llamó <command>setlock</command> se bloqueará hasta que el bloqueo se libere o hasta que el tiempo de expiración especificado haya pasado, en cuyo caso se retornará <literal>REFUSED</literal>."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+"Si el bloqueo no se puede obtener inicialmente entonces <classname>LockManager</"
+"classname> intentará con el número especificado de reintentos, en espera del valor del tiempo de expiración especificado entra cada intento fallido. Por defecto es 100 intentos, cada inetnto separado por un retraso de 0.25 segundos; el tiempo entre intentos se especifica en micro-segundos."
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "Si tiene lugar un conflicto de bloqueos la implementación actual simplemente pone en espera las peticiones de bloqueo lo cual previene puntos muertos en vez de proporcionar un esquema de detección completo de puntos muertos. Si se obtiene el bloqueo que se ha pedido entonces la operación setlock retornará el valor <literal>GRANTED</literal>, de otra manera retorna el valor <literal>REFUSED</literal>. Es la responsabilidad del programador asegurarse de que lo que queda del código para una operación sólo sea ejecutado sólo si se otorga una petcición de bloqueo. A continuación encontrará los ejemplos del uso de la operación <command>setlock</command>. "
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "El mecanismo de control de concurrencia está integrado en el mecanismo de acción atómica por lo cual se asegura que cuando los bloqueos se otorgan en un objeto, la información apropiada se registra con la acción atómica actualmente ejecutando para asegurarse de que los bloqueos se liberan en el momento correcto. Esto libera al programador de tener que liberar de manera explícita cualquier bloqueo adquirido si se adquirieron dentro de acciones atómicas. Sin embargo, si los bloqueos se adquieren en un objeto <emphasis>fuera</emphasis> del ámbito de una acción atómica, es la responsabilidad del programador el liberar los bloqueos cuando se necesite utilizando la operación correspondiente <command>releaselock</command>."
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "Política de bloqueo "
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"De manera opuesta que otros sistemas, los bloqueos en <emphasis>TxCore</emphasis> no son tipos de sistemas especiales. En su lugar son simplemente instancias de otros objetos <emphasis>TxCore</emphasis> (la clase <classname>Lock</classname>, la cual también se deriva del <classname>StateManager</classname> para que los bloqueos se puedan hacer persistentes si es necesario y también se puede nombrar de una manera simple). Además, <classname>LockManager</classname> de manera deliberada no tiene conocimiento sobre la semántica de la política actual por medio de la cual las peticiones de bloqueo se otorgan. Dicha información es mantenida por las instancias de la clase <classname>Lock</"
+"classname>, las cuales proporcionan operaciones (la operación "
+"<literal>conflictsWith</literal>) por medio de la cual <classname>LockManager</"
+"classname> puede determinar si dos bloqueos causan un conflicto o no. Esta separación es "
+"importante ya que le permite al programador derivar nuevos tipos de bloqueos de la clase <classname>Lock</classname> básica y proporcionando las definiciones de operaciones en conflicto lo cual puede dar lugar a niveles mejorados de concurrencia."
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"La clase <classname>Lock</classname> brinda una operación <command>modifiesObject</"
+"command>, la cual <classname>LockManager</classname> utiliza para determinar si el otorgar esta petición de bloqueo requiere una llamada en modified. Esta operación se brinda para que los modos de bloqueo aparte de lectura y escritura simples se puedan soportar. La clase <classname>Lock</classname> proporcionada soporta la política tradicional de múltiples lecturas/sólo una escritura."
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "Construcción y destrucción de objetos "
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "Recuerde que los objetos <emphasis>TxCore</emphasis> pueden ser recuperables; recuperables y persistentes; o ninguno de los dos. Además cada objeto posee un nombre interno único. Estos atributos sólo se pueden configurar cuando se contruye ese objeto. Por lo tanto, <classname>LockManager</classname> proporciona dos constructores protegidos para uso con clases derivadas, cada una de las cuales cumple un propósito distinto:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "Este constructor permite la creación de nuevos objetos, es decir se asume que no existe un estado anterior. "
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+"Como se mostró anteriormente, este constructor permite la creación de nuevos objetos, es decir se asume que no existe un estado anterior. El <literal>ObjectType</literal> parámetro "
+"determina si un objeto es simplemente recuperable (indicado con un "
+"<literal>RECOVERABLE</literal>); recuperable y persistente (indicado con "
+"<literal>ANDPERSISTENT</literal>) o ninguno (<literal>NEITHER</literal>). "
+"Si un objeto se marca como persistente entonces el estado del objeto se almacenará en uno de los almacenamientos de objetos. El parámetro compartido sólo tiene sentido si es <literal>RECOVERABLE</literal>; si <literal>attr</literal> no es "
+"nulo y el modelo del objeto es <literal>SINGLE</literal> (el comportamiento predeterminado) entonces el estado recuperable del objeto se mantiene dentro del objeto mismo (por ejemplo, no tiene representación externa), de otra manera se utiliza un almacenamiento de objetos en-memoria (volátil) para almacenar el estado del objeto entre acciones atómicas."
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Los constructores para objetos persistentes nuevos deben hacer uso de acciones atómicas dentro de ellos mismos. Esto asegura que el estado del objeto es escrito de manera automática en el almacenamiento de objetos ya sea cuando la acción en el contructor guarda los cambios o si una clase para adjuntar existe, cuando la acción a nivel superior apropiada guarda los cambios. Más adelante ilustraremos este puntos con más ejemplos. "
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "Este constructor permite acceso a un objeto persistente existente, cuyo nombre interno es dado por el parámetro <literal>objUid</literal>. Los objetos construidos utilizando esta operación normalmente tendrán su estado previo (identificado por <literal>objUid</literal>) cargado automáticamente de un almacenamiento de objetos por el sistema. "
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "Como lo mencionamos antes, este constructor permite acceso a un objeto persitente existente, cuyo nombre interno está dado por el parámetro <literal>objUid</literal>. Los objetos construidos utilizando esta operación normalmente tendrán su estado previo (identificado por <literal>objUid</literal>) cargado automáticamente desde un almacenamiento de objetos por el sistema. Si el parámetro attr no es nulo y el modelo del objeto es <literal>SINGLE</literal> (el comportamiento predeterminado) entonces el objeto no será reactivado al comienzo de cada transacción a nivel superior. "
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "El destructor de una clase definida por el porgramador debe invocar la operación heredada terminate para informarle al mecanismo de administración de estado que el objeto está a punto de ser destruido de otra manera se pueden generar resultados inpredecibles. "
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"Ya que <classname>LockManager</classname> hereda de "
+"<classname>StateManager</classname>, pasará cualquier instancia "
+"<classname>ObjectName</classname> proporcionada a la clase <classname>StateManager</"
+"classname>. Como tal es posible configurar el modelo del objeto <classname>StateManager</classname> como se describió anteriormente."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,708 @@
+# translation of Chapter_03.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 13:29+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "Consideraciones sobre transacciones generales"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Consideraciones sobre transacciones avanzadas con TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "Tanto los programadores de las aplicaciones como los desarrolladores de las clases pueden utilizar las acciones atómicas (transacciones). Por lo tanto las operaciones completas (o partes de operaciones) se pueden hacer atómicas cuando se necesite por medio de la semántica de una operación en particular. Este capítulo describirá algunos de los problemas más sutiles relacionados con el uso de transacciones en general y <emphasis>TxCore</emphasis> en particular."
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "Verificación de transacciones "
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"En una aplicación con multi-hilos, múltiples hilos se pueden asociar con una transacción durante su tiempo de vida, por ejemplo, los hilos comparten el contexto. Además, es posible que si un hilo termina una transacción puede que otros hilos aún se encuentren activos dentro de él. En un entorno distribuido puede ser dificil el garantizar que todos los hilos hayan terminado con una transacción esta se termina. Por defecto, <emphasis>TxCore</emphasis> emitirá una advertencia si un hilo termina una transacción cuando otros hilos aún se encuentran activos dentro de él; sin embargo, le permitirá continuar con la terminación de la transacción. Hay otras soluciones posibles para este problema, por ejemplo, bloquear el hilo que está terminando la transacción hasta que todos los otros hilos se hayan desasociado a sí mismos del contexto de la transacción. Por lo tanto, <emphasis>TxCore</emphasis> proporciona la clase <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname>, la cual permite sobreescribir la política de terminación de transacciones/hilos. Cada transacción tiene una instancia de esta clase asociada consigo y los programadores de aplicaciones pueden proporcionar sus propias implementaciones transacción por transacción."
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Cuando un hilo intenta terminar la transacción y aún hay hilos activos dentro de esta, el sistema invocará el método de verificación en el objeto <classname>CheckedAction</classname> de la transacción. Los parámetros para verificar el método son: "
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Indica si la transacción está en proceso de guardar los cambios o de deshacerlos. "
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "El identificador de transacciones"
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "lista"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "una lista de los hilos actualmente marcados como activos dentro de esta transacción. "
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "Cuando la verificación retorna, la terminación de la transacción continua. Obviamente el estado de la transacción en este punto puede ser diferente de cuando se realizó la verficicación, por ejemplo, puede que la transacción haya guardado los cambios posteriormente. "
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "Estadísticas en conjunto"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+"Por defecto, JBossTS no mantiene ningún historial sobre las transacciones. Sin embargo, al configurar variable de la propiedad <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> como YES, el servicio de transacciones mantendrá información sobre el número de transacciones creadas y sus resultados. Esta información se puede obtener durante la ejecución de una aplicación transaccional por medio de la clase <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Optimización para guardar los cambios del último recurso"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+"En algunos casos es necesario listar los participantes que no están concientes de que el guardar los cambios se realiza en dos fases en una transacción de guardado en dos fases. Si sólo hay un sólo recurso entonces no es necesario guardar los cambios en dos fases. Sin embargo, ¿qué pasa si hay múltiples recursos en la transacción? En este caso, tiene lugar la optimización para guardar cambios del último recurso (LRCO del inglés Last "
+"Resource Commit optimization). Es posible que un sólo recurso que sea conciente de una fase (por ejemplo, sólo puede guardar los cambios o deshacerlos, sin un prepare) que se enliste en una transacción con recursos concientes de guardar los cambios en dos fases. El coordinador trata el recurso conciente de una fase de manera diferente en que este ejecuta la fase de preparación en todos los otros recursos primero y luego si quiere guardar la transacción entonces le pasa el control al recurso conciente de una fase. Si guarda los cambios entonces el coordinador registra la decisión para guardar los cambios y trata de guardar los cambios de los otros recursos también. "
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+"Con el fin de utilizar LRCO, su participante debe implementar la interfaz "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> y registrarse con la transacción por medio de la operación <command>BasicAction</"
+"command>.add ya que esta operación espera instancias de "
+"<classname>AbstractRecord</classname>, debe crear una instancia "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> y dar su participante como el parámetro constructor, como se muestra a continuación:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Transacciones anidadas"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr "No hay construcciones especiales para anidar transacciones. Si una acción se inicia mientras que otra acción está ejecutando entonces se anida de manera automática. Esto permite una estructura modular en las aplicaciones, en donde los objetos se pueden implementar utilizando acciones atómicas dentro de sus operaciones sin que el programador de aplicaciones se tenga que preocupar de las aplicaciones que las utilizarán, por ejemplo, si las aplicaciones utilizarán o no acciones atómicas también. Por lo tanto en algunas acciones de las aplicaciones puede ser el nivel superior mientras que en otras puede se anidado. Los objetos escritos de esta manera se pueden compartir entre programadores de aplicaciones y <emphasis>TxCore</emphasis> garantizará su consistencia. "
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "Si una acción anidada se aborta entonces se deshace todo su trabajo, aunque el bloqueo estricto de dos fases significa que cualquier bloqueo que se pudo haber obtenido se retendrá hasta que la acción a nivel superior guarde los cambios o aborte. Si una acción anidada guarda los cambios entonces el trabajo que ha realizado sólo será guardado por el sistema si la acción a nivel superior guarda los cambios, si la acción a nivel superior aborta entonces todo el trabajo se deshace. "
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "El guardar los cambios o el abortar una acción anidada no afecta de manera automática el resultado de la acción dentro de la cual se encuentra anidado. Esta aplicación es dependiente y le permite al programador estructurar acciones atómicas para que contengan fallas, trabajos deschechos, etc. "
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "Guardar los cambios de una transacción de manera asincrónica"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "Por defecto, JBossTS ejecuta el protocolo para guardar cambios de una transacción a nivel superior de una manera asincrónica, por ejemplo, se le dirá a todos los recursos registrados que se preparen en orden de un sólo hilo y luego se les dirá que guarden los cambios o que los deshagan. Esto tiene vasrias desventajas posibles: "
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "En el caso de que haya muchos recursos registrados, el prepare se puede invocar lógicamente en paralelo en cada recurso. La desventaja es que si un recurso 'temprano' en la lista de recursos registrados fuerza el deshacer los cambios durante la fase prepare, posiblemente muchas operaciones prepare se habrán hecho de manera innecesaria. "
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "En el casi en donde la aplicación no requiere un reporte huerístico, la segunda fase del protocolo para guardar los cambios se puede hacer de manera asincrónica ya que no tiene mayor importancia si tiene éxito o no. "
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"Por lo tanto, <emphasis>JBossTS</emphasis> proporciona las opciones en tiempo de ejecución para habilitar posibles optimizaciones de hilos. Al configurar la variable de entorno <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> como "
+"<literal>YES</literal>, durante la fase prepare se creará un hilo separado para cada participante registrado dentro de la transacción. Al configurar "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> como "
+"<literal>YES</literal>, se creará un hilo separado para completar la segunda fase de la transacción si no se requiere el conocimiento sobre resultados heurísticos. "
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "Transacciones independientes a nivel superior"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+"Además de las acciones atómicas anidadas y normales a nivel superior <emphasis>TxCore</"
+"emphasis> también soporta acciones independientes a nivel superior, las cuales se pueden utilizar para relajar la seriabilidad estricta de una manera controlada. Una acción independiente a nivel superior se puede ejecutar desde cualquier lugar dentro de otra acción atómica y se comporta exactamente igual que una acción normal a nivel superior, es decir, sus resultados se hacen permanentes cuando guarda los cambios y no se deshacen si cualquiera de las acciones dentro de la cual se anidó originalmente aborta."
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Acción independiente a nivel superior "
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "muestra un anidado típico de acciones atómicas, en donde la acción B se anida dentro de la acción A. Aunque la acción atómica C está anidada lógicamente dentro de la acción B (su operación Begin se invocó mientras que B estaba activo) debido a que es una acción independiente a nivel superior, guardará los cambios o abortará de manera independiente de las otras acciones dentro de la estructura. Gracias a la naturaleza de las acciones independientes a nivel superior estas se deben utilizar con mucho cuidado y sólo en situaciones en donde su uso se ha examinado de manera cuidadosa. "
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "Las acciones a nivel superior se pueden utilizar dentro de una aplicación declarando y utilizando instancias de la clase <classname>TopLevelTransaction</classname>. Estas se utilizan exactamente de la misma manera que las otras transacciones. "
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "Transacciones dentro de save_state y restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"Debe tener mucho cuidado al escribir las operaciones <command>save_state</command> y "
+"<command>restore_state</command> para asegurarse de no iniciar ninguna acción atómica (ya sea explícitamente en la operación o implícitamente por medio del uso de alguna otra operación). Esta restricción surge ya que puede que "
+"<emphasis>TxCore</emphasis> invoque <command>restore_state</command> como parte de su proceso de guardar cambios lo que resulta en un intento de ejecutar una acción atómica durante la fase para guardar cambios o de abortar de otra acción. Esto puede llegar a violar las propiedades de atomicidad de la acción que se está guardando (o abortando) y por lo tanto no se aconseja que la utilice."
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "Si consideramos el ejemplo de la lista que vimos antes, las operaciones set y get se pueden implementar como se muestra a continuación."
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Este es una simplificación del código que ignora errores y excepciones. "
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Objetos de recopilación de basura"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "Los objetos Java se borran cuando el recolector de basura determina que ya no se necesitan. El borrar un objeto se encuentra actualmente bajo el control de una transacción se debe realizar con mucho cuidado ya que si el objeto está siendo manipulado dentro de una transacción, su destino está determinado por la transacción. Por lo tanto, sin importar las referencias a un objeto transaccional mantenido por una aplicación, <emphasis>TxCore</emphasis> siempre retendrá sus propias referencias para asegurarse de que el objeto no sea recogido por la basura si no hasta que se haya terminado cualquier transacción. "
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "Expiración de transacciones "
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "Por defecto las transacciones viven hasta que la aplicación que las creó las termina o hasta que ocurra una falla. Sin embargo, es posible configurar un tiempo de expiración (en segundos) transacción por transacción de tal manera que si la transacción no ha terminado antes de que el tiempo de expiración se cumpla entonces se desharán la transacción automáticamente. "
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+"En <emphasis>TxCore</emphasis>, el valor del tiempo de expiración se proporciona como un parámetro "
+"para el constructor <classname>AtomicAction</classname>. Si se proporciona un valor de "
+"<literal>AtomicAction.NO_TIMEOUT</literal> (el predeterminado) entonces la transacción no expirará de manera automática. Cualquier otro valor positivo se asume para el tiempo de expiración de la transacción (en segundos). Un valor de cero se toma como un tiempo de expiración global predeterminado, el cual lo puede proveer la propidad <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. A menos de que se cambie el valor predeterminado es 60 segundos."
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"Cuando se crea una transacción a nivel superior con un tiempo de expiración diferente a cero, está sujeto a ser deshecho si no se ha completado dentro del número de segundos especificado. <emphasis>JBossTS</emphasis> utiliza un reaper thread separado, el cual monitorea todas las transacciones creadas localmente y las fuerza a deshacerlas si sus tiempos de expiración se acaban. Para prevenir que este hilo consuma el tiempo de la aplicación, sólo ejecuta periódicamente. El tiempo predeterminado de verificación es 120000 millisegundos, pero se puede sobreescribir configurando la variable de la propiedad <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> con otro valor válido, en microsegundos. De manera alterna, si el <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> se configura como "
+"<literal>DYNAMIC</literal>, entonces el transaction reaper se despertará cuando una transacción expire. Esto tiene la ventaja de terminar transacción de manera temprana pero puede que tenga que reprogramar el reaper thread continuamente. "
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"Si se especifica un valor de 0 para el tiempo de expiración de una transacción a nivel superior ( o no se especifica un tiempo de expiración) entonces <emphasis>JBossTS</emphasis> no impondrá ningún tiempo de expiración en la transacción, por ejemplo, se le permitirá que ejecute indefinidamente. El tiempo de expiración predeterminado se puede sobreescribir configurando la variable de la propiedad <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> al utilizar <emphasis>ArjunaCore</emphasis> o <emphasis>ArjunaJTS</"
+"emphasis>, o <literal>com.arjuna.ats.jts.defaultTimeout</literal> si usa"
+"<emphasis>ArjunaJTS</emphasis>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,339 @@
+# translation of Chapter_04.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 14:31+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "Consejos"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "General"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Uso de transacciones en constructores "
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Los ejemplos incluidos en este manual utilizan transacciones en la implementación de constructores para nuevos objetos persistentes. Esto se hizo deliberadamente ya que garantiza la propagación correcta del estado del objeto para el almacenamiento de objetos. Recuerde que el estado de un objeto persistente modificado sólo se escribe en el almacenamiento de objetos cuando la transacción a nivel superior guarda los cambios. Por lo tanto si la transacción constructora se encuentra a nivel superior y guarda los cambios entonces el objeto recién creado se escribe en el almacenamiento y se hace disponible de manera inmediata. Sin embargo, si la transacción constructora guarda los cambios pero es anidada ya que alguna otra transacción empezó antes de ejecutar la creación del objeto entonces el estado sólo se escribirá si todas las transacciones padre guardan los cambios. "
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "Por otro lado, si el constructor no utiliza transacciones entonces es posible que surjan inconsistencias en el sistema. Por ejemplo, si no hay transacción activa cuando el objeto se crea entonces su estado no se guardará en el almacenamiento hasta la próxima vez que el objeto sea modificado bajo el control de alguna transacción. "
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "Considere este ejemplo simple:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"Aquí los dos objetos se crean fuera del control de la acción superior A. <literal>obj1</literal> es un nuevo objeto; <literal>obj2</literal> es un objeto viejo ya existente. Cuando la operación remember de <literal>obj2</"
+"literal> se invoca el objeto se activará y el Uid de "
+"<literal>obj1</literal> se recordará. Ya que esta acción guarda los cambios del estado persistente de <literal>obj2</literal> ahora contiene el Uid de <literal>obj1</"
+"literal>. Sin embargo, el estado de <literal>obj1</literal> no ha sido guardado ya que no ha sido manipulado bajo el control de cualquier acción. De hecho, a menos de que se modifique bajo el control de alguna acción después en la aplicación nunca se guardará. Sin embargo, si el constructor había utilizado una acción atómica el estado de <literal>obj1</literal> se habría guardado de manera automática cuando fue construido y esta inconsistencia no podía haber surgido."
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "Un poco más sobre save_state y restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+"<emphasis>TxCore</emphasis> puede invocar la operación definida por el usuario <command>save_state</"
+"command> de un objeto efectivamente en cualquier momento durante el tiempo de vida de un objeto incluyendo durante la ejecución del cuerpo del constructor del objeto (particularmente si utiliza acciones atómicas). Por lo tanto es importante que todas las variables que se guarden con save_state se incialicen de manera correcta."
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"Debe tener también mucho cuidado al escribir las operaciones <command>save_state</"
+"command> y <command>restore_state</command> y asegurarse de que no se han iniciado transacciones (ya sea de manera explícita en la operación o implicitamente por medio del uso de alguna otra operación). Esta restricción surge debido al hecho de que <emphasis>TxCore</emphasis> puede invocar <command>restore_state</"
+"command> como parte de su proceso de guardar los cambios lo que hace que se intente ejecutar una transacción atómica durante la fase de guardar los cambios o de abortar de otra transacción. Esto puede llegar a violar las propiedades de atomicidad de la transacción que se está guardando (o abortando) y por lo tanto no la sugerimos."
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"Con el fin de soportar la recuperación de fallos para objetos persistentes es necesario para todos los métodos <literal>save_state</literal> y <literal>restore_state</literal> de objetos de usuario llamar a <command>super.save_state</command> y a "
+"<command>super.restore_state</command>."
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Empacar objetos "
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"Todos los tipos básicos de Java (int, long, etc) se pueden guardar y reestablecer desde una instancia <classname>Input/OutputObjectState</classname> usando las rutinas "
+"pack (y unpack) que <classname>Input/OutputObjectState</"
+"classname> proporciona. Sin embargo el empacar y desempacar objetos se debe manejar de manera diferente. Esto se debe a que el empaque de objetos trae consigo los problemas adicionales de los alias. Esto se refiere a cuando las referencias de dos objetos diferentes de hecho apuntan al mismo objeto, por ejemplo: "
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 ""
+"Aquí, tanto s1 como s2 apuntan a la misma cadena y una implementación inocente de "
+"<command>save_state</command> podría terminar en copiar la cadena dos veces. Desde una perspectiva <command>save_state</command> esto simplemente es ineficiente. "
+"Sin embargo, esto hace que <command>restore_state</command> sea incorrecto ya que desempacaría las dos cadenas en áreas diferentes de la memoria lo que destruiría la información original sobre los alias. La versión actual de TxCore empacará y desempacará referencias de objetos separados."
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "Uso directo de StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+"Los ejemplos en este manual siempre han derivado las clases de usuario de "
+"<classname>LockManager</classname>. La razón para esto es doble. Primero, y la razón más importante, las restricciones de seriabilidad de acciones atómicas que la requieren y segundo reduce la necesidad de intervención del programador. Sin embargo, si sólo se requiere acceso a los mecanismos de recuperación y de persistencia de <emphasis>TxCore</emphasis> entonces es posible la derivación directa de la clase de un usuario de <classname>StateManager</classname>."
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+"Las clases derivadas directamente de <classname>StateManager</classname> deben hacer uso de sus mecanismos de administración de estado de manera explícita (estas interacciones normalmente las toma el <classname>LockManager</classname>). Desde el punto de vista de un programador llega hasta hacer uso apropiado de las the "
+"operaciones activate, deactivate y modified, ya que los constructores del <classname>StateManager</"
+"classname> son efectivamente idénticos a aquellos del "
+"<classname>LockManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr ""
+"<command>Activate</command> carga un objeto desde el almacenamiento de objetos. El UID del objeto ya debe estar configurado por medio del constructor y el objeto debe existir en el almacenamiento. Si el objeto se lee de manera exitosa entonces se llama a <command>restore_state</command> para construir el objeto en memoria. "
+"<command>Activate</command> es id impotente así que una vez un objeto haya sido activado se ignoran las llamadas siguientes. El parámetro representa el nombre raíz del almacenamiento de objetos para buscar el objeto. Un valor de nulo significa utilizar el lamacenamiento predeterminado."
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "Los inverso de activate. Primero llama a <command>save_state</command> para construir la imagen compacta del objeto, el cual luego se guarda en el almacenamiento de objetos. Los objetos sólo se guardan si han sido modificado desde que fueron activados. El parámetro representa el nombre raíz del almacenamiento de objetos en el cual se debe guardar el objeto. Un valor de nulo significa que utiliza el almacenamiento predeterminado."
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>Tiene</emphasis> que llamarlo antes de modificar el objeto en memoria. Si no lo llama deactivate no guardará el objeto en el almacenamiento de objetos."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,954 @@
+# translation of Chapter_05.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 15:15+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "Herramientas"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "Este capítulo explica cómo iniciar y utilizar el marco de trabajo de las herramientas y las herramientas que están disponibles. "
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "Inicio de las herramientas del servicio de transacciones "
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "La manera de iniciar las herramientas del servicio de transacciones es diferente dependiendo del sistema operativo que utilice: "
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr "Haga doble click en el enlace ‘Start Tools’ en el grupo del programa JBoss Transaction Service en el menú de inicio. "
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix "
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Inicie una shell bash y escriba: "
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr "Una vez que haya hecho esto aparecerá la ventana de herramientas. Este es el área de lanzamientos para todas las herramientas que se envían junto con el <emphasis>Servicio JBoss Transaction</emphasis>. En la parte superior de la ventana observará una barra de menú. Este menú tiene cuatro cosas: "
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>File</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Open JMX Browser"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr "Esto presenta la ventana del navegador JMX (consulte ***Using the JMX Browser para obtener mayor información sobre cómo utilizar el navegador JMX)."
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Open Object Store Browser"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+"Esto presenta la ventana del navegador del almacenamiento de objetos JBossTS (consulte ***Using the "
+"Object Store Browser para obtener mayor información sobre cómo utilizar el navegador del almacenamiento de objetos). "
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Settings"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "Esta opción abre el diálogo de configuración que le permite modificar las diferentes herramientas disponibles. "
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr "Exit"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "Esto cierra la ventana de herramientas y sale de la aplicación, cualquiera de los cambios que no se hayan guardado o que no se hayan confirmado se perderán. "
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>Performance</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Open"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+"Esto abre una ventana que examina el rendimiento – consulte la <xref linkend=\"Performance_Tool\"/> "
+"para obtener mayor información sobre la herramienta de rendimiento."
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr "Close All"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"Esto cierra todas las ventanas de rendimiento que se encuentran abiertas actualmente - consulte la <xref "
+"linkend=\"Performance_Tool\"/> para obtener mayor información sobre la herramienta que examina el rendimiento. "
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>Window</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Cascade Windows"
+
+#. 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 "Esto pone las ventanas en una línea diagonal para poder encontrar una ventana en específico. "
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Para cada ventana visible actualmente hay disponible una opción extra en el menú. El seleccionar esta opción del menú pone la ventana asociada en el primer plano. "
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>Help</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Esto muestra la ventana que contiene información sobre el producto. "
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Uso de la herramienta de rendimiento"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 "La herramienta de rendimiento se puede utilizar para presentar la información sobre el rendimiento del servicio de transacciones. Esta información se recoge utilizando el bean JMX de rendimiento, lo cual significa que el servicio de transacción necesita ser integrado en un servidor de aplicaciones para poder brindar cualquier información sobre rendimiento. "
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"La información de rendimiento se presenta a través de una gráfica multi-series. Para ver esta gráfica simplemente abra una ventana de rendimiento seleccionando "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "La ventana que ahora puede ver contiene una gráfica multi-series que presenta la siguiente información:"
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr "Número de transacciones."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Número de transacciones que se han guardado."
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Número de transacciones abortadas."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Número de transacciones anidadas."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Número de heurísticos planteados. "
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "Para prender o apagar esta serie simplemente seleccione la opción del menú del menú series. "
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 "Cuando las series se prenden aparecen en una leyenda al final de la gráfica. El color al lado del nombre de la serie (por ejemplo, transacciones creadas) es el color de la línea que representa esos datos. "
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "Los datos se grafican frente al tiempo. El eje 'y' representa el número de transacciones y el eje 'x' representa el tiempo. "
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 "En cualquier momento se puede detener la muestra de datos y se puede reiniciar utilizando el menú <menuchoice><guimenu>Sampling</guimenu></menuchoice> y los datos actualmente visibles en la gráfica se pueden guardar en un archivo CSV (del inglés Comma Separate Values) para importar los datos en una aplicación de hoja de cálculo utilizando la opción del menú <menuchoice><guimenu>Save to .csv</guimenu></menuchoice> del menú <menuchoice><guimenu>Data</guimenu></menuchoice>. "
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Uso del navegador JMX"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"Para abrir la ventana del navegador JMX haga click en el menú <menuchoice><guimenu>File</"
+"guimenu></menuchoice> y luego haga click en la opción <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>. La ventana del navegador JMX se abrirá. "
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 "La ventana tiene dos secciones principales: el panel de detalles y el panel MBean. El panel MBean presenta los MBeans expuestos por el servidor MBean. Estos están agrupados por nombre de dominio. El panel de detalles presenta información sobre el MBean actualmente seleccionado. Para seleccionar un MBean simplemente haga click en el botón izquierdo del ratón y se seleccionará. La información que se presenta en el panel de detalles es la siguiente: "
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "El número total de MBeans registrados en este servidor. "
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "El número de constructores expuestos por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "El número de atributos expuestos por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "El número de operaciones expuestas por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "El número de notificaciones expuestas por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "Una breve descripción del MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 "También hay un enlace <menuchoice><guimenu>View</guimenu></menuchoice> el cual si se hace click en él presenta los atributos y operaciones expuestas por este MBean. Desde aquí puede ver los atributos leíbles, puede alterar atributos de escritura y operaciones de invocación."
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "Uso de atributos y operaciones "
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+"Cuando se hace click en el enlace <menuchoice><guimenu>View</guimenu></menuchoice> se presenta la ventana View JMX Attributes and Operations. Desde ahí puede ver todos los atributos leíbles que el MBean seleccionado expone. También puede "
+"alterar los atributos que se pueden escribir. Si un atributo es de sólo lectura no podrá alterar el valor de un atributo. Para alterar el valor de un atributo simplemente haga doble click en el valor actual e introduzca el nuevo valor. Si el botón "
+"<guibutton>...</guibutton> se encuentra activado entonces puede hacer click en él para poder ver un método de edición más apropiado. Si el tipo del atributo es un nombre de objeto JMX entonces el hacer click en este botón presentará los atributos y operaciones JMX para ese objeto."
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "En cualquier momento puede hacer click en el botón <guibutton>Refresh</guibutton> para actualizar los valores del atributo. Si se presenta una excepción al recuperar el valor de un atributo, la excepción se presenta en el lugar del valor del atributo. "
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 "También puede invocar operaciones sobre un MBean. Una lista de operaciones expuestas por un MBean se presenta debajo de la lista de atributos. Para invocar una operación simplemente selecciónela de la lista y haga click en el botón <guibutton>Invoke</guibutton>. Si la operación requiere parámetros entonces aparecerá otra ventana desde donde debe especificar los valores para cada uno de los parámetros requeridos. Se especifican los valores de los parámetros de la misma manera que se especifican los valores de atributos JMX. Una vez que haya especificado el valor para cada uno de los parámetros haga click en el botón <guibutton>Invoke</guibutton> para realizar la invocación. "
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Una vez se ha completado la invocación del método se presentará su valor de retorno. "
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "Uso del navegador de almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+"Para abrir la ventana del navegador de almacenamiento de objetos haga click en el menú <menuchoice><guimenu>File</guimenu></menuchoice> y luego haga click en la opción "
+"<menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice> y podrá verla."
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "La ventana del navegador de almacenamiento de objetos se divide en cuatro secciones: "
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 "Raíz del almacenamiento de objetos - este es un menú desplegable de la raíz del almacenamiento de objetos actualmente disponible. El seleccionar una opción de la lista volverá a introducir la información de la vista de jerarquía con el contenido de la raíz seleccionada. "
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "Jerarquía del almacenamiento de objetos - este es un árbol que muestra la jerarquía del almacenamiento de objetos actual. El seleccionar un nodo de este árbol presentará los objetos almacenados en ese lugar. "
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objetos – es una lista de íconos que representan los objetos almacenados en el lugar seleccionado."
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 "Detalles del objeto - muestra información acerca del objeto seleccionado actualmente (sólo si el repositorio para ver el estado conoce el tipo de objeto; consulte la sección 'Writing an OSV' para obtener mayor información sobre cómo escribir un visor de estado de objetos (OSV - object state viewers)."
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "Visor de estado de objetos (OSV - Object State Viewers)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 "Cuando un objeto se selecciona del panel de objetos en la ventana principal, se invoca el visor de estado de objetos (OSV - object state viewers) para ese tipo de objeto. Una de las tareas de este visor es hacer que la información esté disponible a través de la interfaz del usuario al usuario para mostrar información sobre los objetos seleccionados. Distribuido con las herramientas estándares es un visor de estado de objetos para acciones atómicas, este visor presenta información sobre los registros abstractos en varias de sus listas (por ejemplo, heurístico, fallido, sólo lectura, etc). También es posible escribir sus propios visores, los cuales se pueden utilizar para presentar información sobre los tipos de objetos que haya definido. Cubriremos este tema a continuación. "
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "Escritura de un visor de estado de objetos"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "El escrbir un visor de estado de objetos le permite extender las capacidades del navegador de almacenamiento de objetos para mostrar el estado de los registros abstractos definidor por el usuario. Un visor plug-in es simplemente una clase, la cual implementa la interfaz: "
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "Se debe empacar en una JAR dentro del directorio de plugins. Este ejemplo muestra cómo crear un plugin del visor de estado de objetos para una subclase de registros abstractos, la cual se ve así: "
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+"Cuando este registro abstracto se ve en el navegador del almacenamiento de objetos sería bueno poder ver el valor actual. Esto es fácil de hacer ya que podemos leer el estado en una instancia de nuestro registro abstracto y llamar a <methodname>getValue()</"
+"methodname>. El siguiente es el código fuente del plug-in del almacenamiento de objetos: "
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+"El método <methodname>uidNodeExpanded</methodname> se invoca cuando un UID "
+"(identificación única) representando el tipo dado se expande en el árbol de jerarquías del almacenamiento de objetos. Esto no se  requiere por este plugin ya que este registro abstracto no es visible en el almacenamiento de objetos directamente, sólo se puede ver a través de una de las listas en una acción atómica. El método "
+"<methodname>entrySelected</methodname> se invoca cuando una entrada se selecciona de la vista de objetos la cual representa un objeto con el tipo dado. En ambos métodos el StatePanel se utiliza para presentar información con relación al estado del objeto. El panel de estado tiene los siguientes métodos que ayudan a presentar esta información:"
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>: Este método se puede utilizar para mostrar información general."
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 "<methodname>setData(String name, String value)</methodname>: Este método se utiliza para poner información en la tabla presentada por la herramienta del navegador de almacenamiento de objetos."
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: Este método se utiliza para activar el botón de detalles. La interfaz de escucha permite que un plug-in sea informado cuando se pulsa el botón. Ya queda de parte del desarrollador del plug-in el decidir la manera de presentar esta "
+"información adicional."
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 "En este ejemplo leemos el estado del almacenamiento de objetos y utilizamos el valor retornado por getValue() para poner una entrada en la tabla del panel de estado. El método getType() retorna el tipo frente al cual está registrado este plug-in. "
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"Para añadir este plug-in al navegador del almacenamiento de objetos es necesario empacarlo en un archivo JAR (Java Archive) con un nombre que tiene un prefijo 'osbv-'. El archivo JAR debe contener cierta información dentro del archivo manifiesto de manera que el navegador del almacenamiento de objetos sabe qué clases son plug-ins. Todo esto se puede realizar utilizando un script <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> así: "
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"Una vez que se ha creado el JAR con la información correcta en el archivo manifiesto sólo es necesario ponerlo en el directorio <emphasis>bin/tools/plugins</"
+"emphasis>. "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,877 @@
+# translation of Chapter_06.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-01 15:06+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "Construcción de un objeto transaccional para aplicación en Java"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "Construcción de aplicaciones "
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Hay dos fases diferentes para el desarrollo de una aplicación TxCore: "
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Desarrollo de nuevas clases con ciertas características (por ejemplo, persistente, recuperable, control de concurrencia). "
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Desarrollo de la(s) aplicación(es) que utiliza las nuevas clases de objetos. "
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+"Aunque estas dos faces se pueden realizar paralelamente y por una sola persona, nos vamos a referir al primer paso como la tarea del desarrollador de clases y el segundo como la tarea del desarrollador de aplicaciones. El desarrollador de clases se ocupará de definir las operaciones <code>save_state</code> y "
+"<code>restore_state</code> apropiadas para la clase, configurando los bloqueos apropiados en las operaciones e invocando los constructores de clase TxCore apropiados. El desarrollador de aplicaciones estará más involucrado con la definición de la estructura general de la aplicación, particularmente con referencia al uso de acciones atómicas. "
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "Este capítulo ilustra los puntos que resaltamos en secciones anteriores resumiendo una aplicación simple: en este caso se desarrollará una simple clase de cola FIFO para valores enteros. La implementación de la cola se realizará con una estructura de lista enlazada doblemente y se implementará como un sólo objeto. Vamos a utilizar este ejemplo a través del resto de este manual para ayudar a ilustrar los variados mecanismos que TxCore proporciona. Mientras que este es un ejemplo poco realista de una aplicación, este nos permite describir todas las modificaciones TxCore sin necesitar un conocimiento profundo del código de la aplicación. "
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "En el resto de este capítulo vamos a asumir que la aplicación no está distribuida. Si este no es el caso entonces la información de contexto debe propagarse ya sea implícta o explícitamente. "
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "Descripción de cola"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "La cola es una cola FIFO tradicional, en donde los elementos se añaden al frente y se remueven del final. Las operaciones que la clase de cola proporciona permite poner los valores en la cola y removerlos de esta y también es posible cambiar o inspeccionar los valores de los elementos en la cola. En esta implementación de ejemplo, se utiliza una lista para representar la cola. En este ejemplo se impuso un límite de <code>QUEUE_SIZE</code> elementos. "
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "La definición de la interfaz Java de esta clase de cola simple se presenta a continuación: "
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Constructores y deconstructores"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "Como lo mencionamos en la sección anterior, para utilizar un objeto persitente existente se necesita el uso de un constructor especial que se requiere para tomar el Uid del objeto persistente; la implementación de tal constructor se puede ver a continuación:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "El constructor que crea un nuevo objeto persistente es similar:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+"El uso de una acción atómica dentro del constructor para un nuevo objeto sigue las directrices señaladas anteriormente y asegura que el estado del objeto se escribirá al almacenamiento de objetos cuando la acción atómica a nivel superior apropriada guarda los cambios (la cual será la acción A o alguna acción adjunta activa cuando se construyó el <code>TransactionalQueue</code>). El uso de acciones atómicas en un constructor es simple: una acción primero debe ser declarada y su operación begin se debe invocar; después la operación debe establecer un bloqueo apropiado en el objeto (en este caso se debe adquirir un bloqueo <code>WRITE</code>), luego se ejecuta el cuerpo principal del constructor. Si esto tiene éxito entonces las acción "
+"atómica se puede guardar de otra manera se aborta."
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "El destructor de la clase de cola sólo se requiere para llamr a la operación terminate del <methodname>LockManager</methodname>"
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state y tipo"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "Las implementaciones de save_state y restore_state son relativamente simples para este ejemplo:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"Ya que la clase de cola se deriva de la clase <classname>LockManager</"
+"classname>, el tipo de la operación debe ser: "
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "operaciones enqueue/dequeue "
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "Si las operaciones de la clase cola se codifican como acciones atómicas entonces la operación enqueue puede tener la estructura que presentamos a continuación (la operación dequeue se estructuraría de manera similar):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "La implementación de <methodname>queueSize</methodname> se muestra a continuación:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "operaciones inspectValue/setValue"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+"La implementación de <methodname>inspectValue</methodname> aparece a continuación. "
+"<methodname>setValue</methodname> es similar y no se muestra."
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "El cliente"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "En vez de mostrar todo el código para el cliente, vamos a concentrarnos en una proción representativa. Antes de invocar las operaciones en el objeto, el cliente tiene que vincularlo a este primero obviamente. En el caso local esto simplemente requiere que el cliente cree una instancia del objeto. "
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr ""
+"Antes de invocar una de las operaciones de la cola, el cliente inicia una "
+"transacción. La operación <methodname>queueSize</methodname> se puede ver a continuación:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Comentarios"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "Ya que el objeto cola es persistente, el estado del objeto sobrevivirá cualquier falla del nodo en el que se encuentra ubicado. El estado del objeto que sobrevivirá es el producido por la última acción atómica guardada a nivel superior realizada en el objeto. Si es la intención de una aplicación el realizar dos operaciones enqueue atómicamente, por ejemplo, entonces esto se puede lograr anidando las operaciones enqueue en otra acción atómica adjunta. Además, las operaciones concurrentes en tal objeto persistente se serializarán, previniendo inconsistencias en el estado del objeto. Sin embargo, ya que los elementos de los objetos cola no tienen control de concurrencia de manera individual, ciertas combinaciones de invocaciones de operaciones concurrentes se ejecutarán serialmente, mientras que lógicamente se podrían ejecutar concurrentemente. Por ejemplo, el modificar los estados de dos elementos diferentes en la cola. En la próxima sección abordarem!
 os algunos de estos asuntos. "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,345 @@
+# translation of Chapter_07.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-02 14:14+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "Opciones de configuración "
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Opciones  "
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "La siguiente tabla muestra las características de configuración y los valores predeterminados aparecen en cursiva. Encontrará más detalles sobre cada opción en las secciones relevantes de este documento. "
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "Opciones de configuración de TxCore "
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Nombre de la configuración "
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Valores posibles "
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "Prende o apaga la sincronización para el almacenamiento de objetos. Utilícelo con cuidado. "
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "Especifica el tipo de implementación del almacenamiento de objetos a utilizar. "
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/cualquier valor entero"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Configura el número de directorios sobre los cuales realizar hash en los estados de objeto para la implementación del almacenamiento de objetos HashedStore. "
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Especifica el tipo de la implementación del almacenamiento de bloqueos a utilizar."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Especifica la ubicación del almacenamiento de bloqueos."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "Cualquier lugar en donde la aplicación puede escribir."
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "Especifica la ubicación del almacenamiento de objetos. "
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "Especifica el nombre de la raíz del almacenamiento de objetos "
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "La implementación del registro de transacciones a utilizar. "
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "Prende o apaga (por defecto) el guardar los cambios de manera asincrónica. "
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "Prende o apaga (por defecto) prepare asincrónico. "
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "Nombre de clase JDBCAccess"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "La implementación JDBCAccess a utilizar para uso de almacenamientos de objetos a nivel de usuario. "
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "La implementación JDBCAccess a utilizar para uso de almacenamientos de objetos de transacciones."
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "Activar o desactivar la optimización del guardar los cambios de una fase. "
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "Activar o desactivar la optimización de sólo lectura para la segunda fase abort."
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "Iniciar/parar de recoger información estadística sobre transacciones."
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+"Iniciar con el sistema de transacciones activado o desactivado. Conmutar a través de la clase com."
+"arjuna.ats.arjuna.coordinator.TxControl. "
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Entero"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Tiempo de expiración en milisegundos "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/es-ES/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,684 @@
+# 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: 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-07-08 09:40+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 "Implémentations d'ObjectStore"
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "L'ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "Dans cette annexe, nous examinerons les différentes implémentations TxCore 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
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Cette mise à jour de JBossTS comprend différentes 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
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 "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 zônes de stockage d'objets si l'option store par défaut est configurée). Toutes les zônes de stockage 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 maintient 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."
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"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 "ObjetStore persistants"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "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 "Fonctionnalité en commun"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "En plus des fonctions mentionnées ci-dessus, tous les ObjectStores persistants proposées suivent aux règles suivantes:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Chaque état d'objet est placé dans son propre fichier, qui est lui-même nommé par l'intermédiaire de l'<code>Uid</code> de l'objet."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+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
+#, no-c-format
+msgid ""
+"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 "Toutes les zones de stockage 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 à la zone de stockage, automatiquement."
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Toutes les zones de stockage feront référence à 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
+#, no-c-format
+msgid ""
+"&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/"
+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 "ShadowingStore"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"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, verrouillé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
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Si on remplace 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 "Pas de verrouillage au niveau-fichier"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+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 verrouillage 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
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+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 "HashedStore"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "Le <code>HashedStore</code> a la même structure que le ShadowingStore 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 (hachage) aux objets Uid. 255 sous-répertoires sont utilisés par défaut. Cependant, on peut changer cela en configurant la variable <code>HASHED_DIRECTORIES</code> d'environnement en fonction."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+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
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+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 fichier comme le fait l'implémenation de base de <methodname>ShadowingStore</methodname>. 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 de <methodname>ShadowingStore</methodname>."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "<methodname>HashedStore</methodname> a la même structure que les ShadowingStores 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 du même type. En utilisant ce store, les objets sont éparpillés parmi un ensemble de répertoires en appliquant la fonction hachage 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 "JDBCStore"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 "<methodname>JDBCStore</methodname> utilise une base de données JDBC pour sauvegarder les états d'objets persistants. Lorsque 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
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<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 la 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
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: cette méthode est utilisée pour retourner une des connexions provenant de getConnection. Les connexions sont retournées en cas d'errreur."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: peut être utilisé pour passer des informations arbitraires supplémentaires pour l'implémentation."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"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 défini dans la propriété <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> et se restreindra au nombre déterminé dans la propriété <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"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
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+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
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"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
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+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 "CachedStore"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "Cet ObjectStore utilise le HashedObjectStore, mais ne peut ni lire, ni écrire les états dans la zone de stockage de sauvegarde persistant. Il maintient les états dans le cache mémoire volatil et 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 à la perte d'états dans cache."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+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 "La zone de stockage peut être configurée avec les propriétés suivantes:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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 zones de stockage internes pour le hachage des états. La valeur par défaut est 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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, aboutiront 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 du hachage."
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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 si les vidages périodiques de cache sont sync-ed avec le disque. La valeur par défaut est OFF. Pour l'activer, paramétrer sur ON."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# 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: 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-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 "Définitions de classes"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "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 "Bibliothèque de classes"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Gestionnaire de verrouillage"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Entrée/SortieObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Entrée/SortieTampon"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +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: 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-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 "Groupe de documentation Red Hat"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# 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: 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-07-07 11:55+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 "Guide des programmeurs JBoss TS"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "Plate-forme SOA JBoss Enterprise"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "Cet ouvrage est l'édition d'Enterprise Application Platform du guide des programmeurs JBoss TS Programmers Guide."
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1001 @@
+# 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: 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-07-07 15:08+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 "Aperçu"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"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 des 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 tolérantes-de-fautes, utilisant des transactions. Ainsi, après une brève description, nous pourrons les utiliser pour la construction d'une application simple. Les classes 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 "TxCore – le moteur de transactions"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"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
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"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 traite 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
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "<classname>TxCore</classname> exploite des techniques orientées-objet pour proposer aux programmeurs une boîte à outils des classes Java grâce à partir desquelles les classes d'application peuvent hériter pour obtenir les propriétés voulues, comme la persistance et le contrô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 "Classe de hiérarchie Txcore"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"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 sont déclenchés automatiquement en cas d'échecs."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Sauvegarder les états d'objet"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"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 mises en paquets (ou dépaquetées) en contigu, en utilisant les opérations <command>pack</command> (<command>unpack</"
+"command>) appropriées. Le tampon est reconfiguré automatiquement 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 "L'ObjetStore"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "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
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+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 "Recouvrement et persistance"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "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 probablement aucune de ces capacités, dans lequel cas, aucune information de recouvrement n'est gardée, et l'activation/dÃ!
 ©sactivation de l'objet n'est jamais tentée automatiquement."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 "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
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</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 "Cycle de vie d'un Objet Transactionnel pour Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"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 "Le cycle de vie d'un objet persistant."
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+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
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"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 une zone de stockage 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>."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "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>. Il 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
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+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 "Le contrôleur de concurrence (concurrency controller)"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "Le contrôleur de concurrence 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 de concurrence sont accessibles à travers les interfaces. En plus de procurer un accès aux services éloignés, les implémentations actuelles du contrôle dde concurrence disponible aux interfaces comprennent:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+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
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "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
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "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
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "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
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"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 "Le code ci-dessous montre comment on peut obtenir le verrou écriture d'un objet:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Le moteur du protocole de transaction"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "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
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+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 "Exemple"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "Le simple exemple ci-dessous illustre les relations qui existent entre activation, terminaison et validation:"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "L'exécution des codes ci-dessus implique la séquence d'activités suivante:"
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"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 nous relions à 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 "Début d'une transaction atomique."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "Invocations d'opérations: en tant qu'invocation donnée, l'implémentation de l'objet doit garantir qu'il est verrouillé en mode lecture ou écriture (en assumant qu'il n'y ait aucun conflit de verrouillage), et initialisé, 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
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+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 "Rupture des liaisons créées précédemment."
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "La hiérarchie des classes"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"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 fonctions 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é de sérialisation des actions atomiques. L'implémentation des facilités d'action atomique est supportée par <classname>AtomicAction</classname> et "
+"<classname>TopLevelTransaction</classname>."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"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
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 de <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 de concurrence."
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<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 "Vérifier la compatibilité verrou-écriture avec les verrous présents, et si permis:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"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 "Créer et insérer une instance de LockRecord dans la RecordList de Trans."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<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
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+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émarrer 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 de concurrence et du recouvrement."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1763 @@
+# 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: 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-07-07 16:03+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 "Utiliser TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<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 "Gestion des états"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "États des objets"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"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 raisons, y compris le recouvrement (l'état représente quelqu'état passé de l'objet), et la persistance (l'état représente l'état final d'un objet en fin 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 "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 "La classe <classname>Input/OutputBuffer</classname> maintient un tableau interne dans lequel des instances de types Java standard peuvent être mises en paquetage (ou dépaquetées) en contigu par le biais des opérations 'pack' (ou 'unpack'). La taille du tampon est automatiquement modifiée suivant qu'il y a suffisamment d'espace, et en fonction des besoins. Les instances sont toutes hébergées dans le tampon sous une forme standard (ordre octets réseau) pour qu'ils puissent être indépendants de la machine."
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"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 impliquent 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 "L'ObjectStore"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "L'ObjectStore proposé 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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"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 'garder' (hold) ou de 'retrait' (retrieve) d'ObjectStore 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 la zone de stockage 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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<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 être recouvert en cas d'échec, puis qu'il continue, soit d'être sauvegardé, soit d'être 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 de la zone de stockage 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 "Sélectionner une implémentation d'ObjectStore"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"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 "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<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
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 "Pour pouvoir supporter les recouvrements 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
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "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
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"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 du programmeur (comme par exemple l'enregistrement du nom dans un serveur de nommage). 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 un nouvel identifiant quand l'objet est créé."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "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 supprimera 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
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "Comme le recouvrement de l'objet et la persistance possèdent essentiellement des prérequis d'accompagnement ( la seule différence étant l'endroit 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 "Modèles d'objets"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+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
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<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 "Modèle d'objet unique"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "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 "Modèle d'objets multiples"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+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> et <command>restore_state</command> au moment de la construction de l'objet."
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "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
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+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 "créer une nouvelle instance d' <classname>ObjectName</classname>."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"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 "Par exemple:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Résumé"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<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 "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"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
+#, no-c-format
+msgid ""
+"<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 "<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 "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 "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 "String type ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"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, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Exemple"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Gestion du verrouillage ou contrôle de concurrence"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 "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 d'accès limité, 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. On peut trouver en annexe davantage d'informations sur les mémoires objet disponibles dans <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Sélectionner une implémentation de mémoire de verrouillage"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"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:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "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 "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"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
+#, no-c-format
+msgid ""
+"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 "<para>ou</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "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 "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 "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'il est 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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"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, comme il 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> invoque l'objet modifié directement en assumant que la configuration d'un verrou écriture implique que l'opération 'invoke' (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
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"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 de la classe du <classname>StateManager</classname>, et pour l'enregistrement de <classname>Resources</classname> en vue de 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>, <command>restore_state</"
+"command><command>save_state</command> et <command>restore_state</"
+"command> de <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "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 d'abandonner. Si un conflit de verrouillage avait lieu, on assisterait à l'un des scénarios suivants:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"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 délai spécifié pendant lequel <literal>REFUSED</literal> est retourné, soit échu."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"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
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "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, ne soit 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
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "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 "Politique de verrouillage"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"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 persistants si besoin est et puissent être nommés simplement). 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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"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 tels 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 "Construction et destruction d'objets"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+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 chacun un but bien particulier:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+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 "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 "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
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Les constructeurs de nouveaux objets persistants devraient utiliser les actions atomiques entre eux. Cela assurera que l'état de l'objet soit automatiquement inscrit dans la mémoire objet, soit quand l'action est sauvegardée dans le constructeur, ou si une action de clôture (enclosing action) 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 "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "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 "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"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 l'objet modèle "
+"<classname>StateManager</classname> comme expliqué plus haut."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,697 @@
+# 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: 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-07-07 16:32+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 "Problèmes de transactions en général"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Problèmes de transactions avancées avec TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "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érations) 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 "Vérifier les transactions"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"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 thread mutiples peuvent être associés à une transaction pendant sa durée de vie,c'est à dire que les threads partagent le même contexte. De plus, il est possible que si un thread termine une transaction, il est possible que d'autres threads soient toujours actifs. Dans un environnement distribué, il peut être difficile de s'assurer que tous les treads aient terminé une transaction lorsque celle-ci s'achève. Par défaut, <emphasis>TxCore</emphasis> émettra un message d'avertissement si un thread termine une transaction alors que d'autres threads sont toujours actifs, tout en permettant à la transaction de se terminer. Il existe d'autres solutions à ce problème, par ex., bloquer le thread qui termine la transaction jusqu'à ce que tous les autres threads 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/thread 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
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Lorsqu'un thread tente de terminer la transaction et qu'il y a toujours des threads 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 "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Indique si une transaction est en cours de processus de soumission ou est refoulée."
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "L'identifiant de la transaction."
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "une liste de tous les fils actuellement indiqués 'actifs' dans la transaction."
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "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 "Collection de statistiques"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "L'optimisation des soumissons de dernier ressort"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"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 refoulée 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, et 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
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<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 créer une instance <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> et proposer votre participant en tant que paramètre de constructeur, comme ci-dessous:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Transactions imbriquées"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+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, c'est à dire si oui ou non les applications vont utiliser des actions atomiques également. Ainsi, dans certaines applications, les actions 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
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "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
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "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 "Soumettre une transaction de manière asynchrone"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "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
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"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 "Transactions indépendantes au niveau supérieur"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"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 indépendantes au niveau supérieur, qui peuvent être utilisées pour relaxer  la sériabilité de manière contrôlée. Une action indépendante au niveau supérieur peut être exécutée à partir 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és, échoue."
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Action indépendante au niveau supérieur"
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "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 les utiliser avec attention et seulement dans des situations qui les justifient."
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "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 "Transactions dans save_state and restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"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'aucune action atomique n'ait 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 "Exemple"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+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
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Il s'agit d'une simplification du code, faisant abstraction des conditions d'erreurs et des exceptions."
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Poubelle ramassant des objets"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "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 "Timeouts de transaction"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "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 un 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 délai n'expire, elle sera automatiquement refoulée."
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"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 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 timeout est prise en secondes pour la transaction. Une valeur de zéro est considérée comme une valeur de timeout 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
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"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 timeout 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 échoue. Afin d'éviter que ce thread 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 se termine. 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
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"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 timeout d'une transaction à niveau supérieur (ou qu'aucun timeout 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 timeout 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 timeout requise en secondes."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,321 @@
+# 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: 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-07-08 09:42+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 "Astuces et conseils"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "Général"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Utiliser les transactions dans constructeurs"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Dans ce manuel, les exemples utilisaient des transactions pour l'implémentation de constructeurs de nouveaux 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é persistant est uniquement inscrit dans l'ObjetStore que lorsqu'une transaction est soumise au niveau supérieur. Ainsi, si la transaction du 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 qu'elle 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
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "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 "Considérer le simple exemple suivant:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"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 invoqué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 quelque action. En fait, à moins d'avoir été modifié sous le contrôle de quelque 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 "Plus d'informations sur save_state and restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+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 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
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"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 "Packing Objects"
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "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 "Utilisation directe de StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 "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
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"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
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"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 la zone de stockage. 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, c'est à dire 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 la zone de stockage par défaut'."
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "L'inverse d'activer. Appelle tout d'abord <command>save_state</command> pour construire une image compacte de l'objet qui est alors sauvegardée 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 "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>Doit</emphasis> être appelé avant de modifier l'objet en mémoire. S'il n'est pas appelé, l'objet ne sera pas sauvegardé dans l'ObjetStore par 'désactiver'."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,941 @@
+# 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: 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-07-08 09:45+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 "Outils"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+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 "Démarrer les outils Service Transaction"
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+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 "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+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 "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Démarrer une shell bash et taper:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"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 "Le menu <menuchoice><guimenu>Fichiers</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Ouvrir le navigateur JMX"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+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 "Ouvrir le navigateur ObjectStore"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 "Ceci affiche la fenêtre du navigateur JBossTS Object Store (voir ***Utiliser le navigateur JBossTS Object pour davantage d'informations sur la façon d'utiliser le navigateur JBossTS Object)."
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Settings (Paramètres)"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+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 "Exit (Sortie)"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+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 "Le menu <menuchoice><guimenu>Performance</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Open (Ouverture)"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+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 "Close All (Tout fermer)"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"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 de performance - 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 "Le menu <menuchoice><guimenu>Window</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+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 "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 "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Pour chaque fenêtre visible couramment, une option de menu supplémentaire sera disponible ici. Sélectionner cette option du menu positionneront 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 "Le menu <menuchoice><guimenu>Help</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "A propos de "
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Ceci affiche la fenêtre 'A propos de' qui contient les informations produit."
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Utiliser l'outil de performance"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 "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
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<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
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+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 "Nombre de transactions."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Nombre de transactions soumises"
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Nombres de transactions abandonnées."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Nombre de transactions imbriquées."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Nombres d'heuristiques soulevés."
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+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
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 "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) en vue d'importer les informations dans un tableur en utilisant l'option de menu <menuchoice><guimenu>Save to .csv</guimenu></menuchoice> du menu <menuchoice><guimenu>Data</guimenu></menuchoice>."
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Utiliser le navigateur JMX"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"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
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 "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 révèle 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 "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 "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 "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 "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 "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 "Une brève description du MBean."
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 "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 "Utiliser les attributs et les opérations"
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 "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 clique sur la valeur existante et saisissez une nouvelle valeur. Si le bouton <guibutton>...</guibutton> est activé, vous pouvez cliquer 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
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "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
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 "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 "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 "Utiliser le navigateur ObjectStore"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 "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 "La fenêtre du navigateur de l'ObjectStore est divisée en quatre sections:"
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 "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 du root selectionné et son contenu."
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "Object Store Hierarchy – Il s'agit d'un arbre qui montre la hiérarchie des ObjectStore actuels. En sélectionnant un noeud de cet arbre, les objets hébergés à cet endroit s'afficheront."
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+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
+#, no-c-format
+msgid ""
+"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 "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 "Object State Viewers (OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 "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 un 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 son 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 "Rédiger un OSV"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "Rédiger un 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 "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 "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ée 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
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+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
+#, no-c-format
+msgid ""
+"<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 "<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
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"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
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"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>."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,874 @@
+# 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: 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-07-08 09:18+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 "Construire des objets transactionnels pour l'application Java"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+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 "Il existe deux phases distinctes pour le développement d'une application TxCore:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Développer 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 "Développer la(les) application(s) qui utilisent les nouvelles classe d'objets."
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"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
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "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
+#, no-c-format
+msgid ""
+"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 "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 "Description de la File d'attente (Queue)"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "Traditionnellement, il s'agit d'une liste d'attente 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 "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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Constructeurs et déconstructeurs"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "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
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "Le constructeur qui crée un nouvel objet persistant est similaire:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 "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
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+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
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state and type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "Les implémentations de save_state et restore_state sont relativement simples dans cet exemple:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "opérations enqueue/dequeue"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "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 "L'implémentation de <methodname>queueSize</methodname> est montrée ci-dessous:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "opérations inspectValue/setValue"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Le client"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "Au lieu de montrer tout 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
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Commentaires"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "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."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+# 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: 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-07-08 09:57+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 "Options de configuration"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Options"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "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 "Options de configuration TxCore."
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Nom de configuration"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Valeurs possibles"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "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 "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "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 "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/toute valeur relative"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Détermine le nombre de répertoires d'états d'objets à 'hacher' en vue de l'implémentation de la zone de stockage d'objets HashedStore."
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Préciser le type d'implémentation de LockStore à utiliser."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Préciser la location du LockStore."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "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 "Spécifier la location de l'ObjectStore."
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+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 "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+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 "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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+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 "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+
+#. Tag: entry
+#: Chapter_07.xml:137
+#, no-c-format
+msgid "Turns on or off (default) asynchronous prepare."
+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 "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "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 "L'mplémentation JDBCAccess à utiliser pour les ObjectStores au niveau-utilisateur."
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "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 "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 "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 "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 "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 "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+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 "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"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 "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Entier relatif"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Délai d'inactivité (timeout) en millesecondes"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/fr-FR/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,567 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:17
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 ""
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:58
+#, no-c-format
+msgid "The shadowing store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:112
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"property> sets the number of internal stores to hash the states over. The "
+"default value is 128."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"property> is the maximum size the cache can reach before a flush is "
+"triggered. The default is 10240 bytes."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"property> sets the time in milliseconds for periodically flushing the cache. "
+"The default is 120 seconds."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"property> determines whether flushes of the cache are sync-ed to disk. The "
+"default is OFF. To enable, set to ON."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,307 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:16+0000\n"
+"PO-Revision-Date: 2008-06-05 22:51+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 ""
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:21
+#, no-c-format
+msgid "Lock Manager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:22
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:29
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:37
+#, no-c-format
+msgid "Input/OutputObjectState"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:38
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:45
+#, no-c-format
+msgid "Input/OutputBuffer"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:46
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:53
+#, no-c-format
+msgid "<title>Uid</title>"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:54
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:61
+#, no-c-format
+msgid "AtomicAction"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:62
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:16+0000\n"
+"PO-Revision-Date: 2008-06-05 22:51+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:24
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,820 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 ""
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:65
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:70
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 ""
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    public LockResult setlock (Lock toSet, int retry, int timeout);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:120
+#, no-c-format
+msgid "The transaction protocol engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:134
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:161
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid ""
+"Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1355 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:26
+#, no-c-format
+msgid "InputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:28 Chapter_02.xml:34
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:42
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:49
+#, no-c-format
+msgid "InputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:56
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:70
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:94
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:98
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 ""
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:161
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:198
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:207
+#, no-c-format
+msgid "Lock management and concurrency control"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:216
+#, no-c-format
+msgid "Selecting a lock store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore "
+"myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:232
+#, no-c-format
+msgid "<para>or</para>"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:255
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:267
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 ""
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:278
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,573 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"BasicList list);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:21
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 ""
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:57
+#, no-c-format
+msgid "Last resource commit optimisation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:68
+#, no-c-format
+msgid "Nested transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:129
+#, no-c-format
+msgid "Garbage collecting objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,283 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:22
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:43
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 ""
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,832 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:16+0000\n"
+"PO-Revision-Date: 2008-06-05 22:51+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"cd &lt;JBossTS INSTALL DIRECTORY&gt;\n"
+"./run-tools.sh"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:36
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+
+#. Tag: caption
+#: Chapter_05.xml:42
+#, no-c-format
+msgid "Menu bar"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:46
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:47 Chapter_05.xml:82 Chapter_05.xml:108 Chapter_05.xml:132
+#, no-c-format
+msgid "&nbsp;"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:63
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "Settings"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:69
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Exit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:81
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:93
+#, no-c-format
+msgid "Open"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:94
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:98
+#, no-c-format
+msgid "Close All"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:99
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:118
+#, no-c-format
+msgid "Cascade Windows"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:119
+#, no-c-format
+msgid ""
+"This arranges the windows in a diagonal line to you find a specific window."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:123
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:124
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:131
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:142
+#, no-c-format
+msgid "About"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:143
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:153
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:157
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:165
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid "Number of transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:175
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:180
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:185
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:190
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:195
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:211
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:214
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:219
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:220
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:233
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:238
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:243
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:248
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:253
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:263
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+
+#. Tag: caption
+#: Chapter_05.xml:270
+#, no-c-format
+msgid "An example of what the details panel displays"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:273
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:277
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:280
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:283
+#, no-c-format
+msgid ""
+"Once the method invocation has completed its return value will be displayed."
+msgstr ""
+
+#. Tag: caption
+#: Chapter_05.xml:290
+#, no-c-format
+msgid "View JMX Attributes and Operations window"
+msgstr ""
+
+#. Tag: caption
+#: Chapter_05.xml:296
+#, no-c-format
+msgid "Invoke Operation Parameters"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:300
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:301
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:309
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:319
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:324
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:329
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:334
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:341
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:342
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:346
+#, no-c-format
+msgid "Writing an OSV"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:347
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: code
+#: Chapter_05.xml:352
+#, no-c-format
+msgid ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:354
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_05.xml:357
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:358
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:361
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:362
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:367
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:372
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:377
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:382
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:385
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:388
+#, no-c-format
+msgid ""
+"&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;"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:389
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,603 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid ""
+"There are two distinct phases to the development of a TxCore application:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid ""
+"Developing the application(s) that make use of the new classes of objects."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid ""
+"The Java interface definition of this simple queue class is given below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:45
+#, no-c-format
+msgid "Constructors and deconstructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        numberOfElements = 0;\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:51
+#, no-c-format
+msgid "The constructor that creates a new persistent object is similar:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:55
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        super.terminate();\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:63
+#, no-c-format
+msgid "save_state, resotre_state and type"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:69
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        return \"/StateManager/LockManager/TransactionalQueue\";\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:74
+#, no-c-format
+msgid "enqueue/dequeue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:81
+#, no-c-format
+msgid "queueSize"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid ""
+"The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:86
+#, no-c-format
+msgid "inspectValue/setValue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:93
+#, no-c-format
+msgid "The client"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:104
+#, no-c-format
+msgid "Comments"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,340 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr ""
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr ""
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:48
+#, no-c-format
+msgid "Specify the type of object store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:90
+#, no-c-format
+msgid "Any location the application can write to."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:137
+#, no-c-format
+msgid "Turns on or off (default) asynchronous prepare."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:156 Chapter_07.xml:167
+#, no-c-format
+msgid "JDBCAccess class name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:170
+#, no-c-format
+msgid "The JDBCAccess implementation to use for transaction object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:181
+#, no-c-format
+msgid "Enable or disable the one-phase commit optimization."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:192
+#, no-c-format
+msgid "Enable or disable read-only optimization for the second phase abort."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/JBoss_Transactions_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language ja-JP translations for JBoss_Transactions_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Programmers_Guide VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:16+0000\n"
+"PO-Revision-Date: 2008-09-17 04:16+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_A.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_A.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_A.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,568 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:17
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 ""
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:58
+#, no-c-format
+msgid "The shadowing store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:112
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"property> sets the number of internal stores to hash the states over. The "
+"default value is 128."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"property> is the maximum size the cache can reach before a flush is "
+"triggered. The default is 10240 bytes."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"property> sets the time in milliseconds for periodically flushing the cache. "
+"The default is 120 seconds."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"property> determines whether flushes of the cache are sync-ed to disk. The "
+"default is OFF. To enable, set to ON."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_B.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_B.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Appendix_B.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,308 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 ""
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:22
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:27
+#, no-c-format
+msgid "Input/OutputObjectState"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:32
+#, no-c-format
+msgid "Input/OutputBuffer"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:37
+#, no-c-format
+msgid "<title>Uid</title>"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:42
+#, no-c-format
+msgid "AtomicAction"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Book_Info.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Book_Info.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,821 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 ""
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:65
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:70
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 ""
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    public LockResult setlock (Lock toSet, int retry, int timeout);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:120
+#, no-c-format
+msgid "The transaction protocol engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:134
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:161
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid ""
+"Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_02.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_02.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_02.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1356 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:26
+#, no-c-format
+msgid "InputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:28 Chapter_02.xml:34
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:42
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:49
+#, no-c-format
+msgid "InputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:56
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:70
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:94
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:98
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 ""
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:161
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:198
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:207
+#, no-c-format
+msgid "Lock management and concurrency control"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:216
+#, no-c-format
+msgid "Selecting a lock store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore "
+"myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:232
+#, no-c-format
+msgid "<para>or</para>"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:255
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:267
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 ""
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:278
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_03.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_03.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_03.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,574 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"BasicList list);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:21
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 ""
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:57
+#, no-c-format
+msgid "Last resource commit optimisation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:68
+#, no-c-format
+msgid "Nested transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:129
+#, no-c-format
+msgid "Garbage collecting objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_04.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_04.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_04.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,284 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:22
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:43
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 ""
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_05.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_05.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_05.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,803 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"cd &lt;JBossTS INSTALL DIRECTORY&gt;\n"
+"./run-tools.sh"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:36
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid ""
+"Once the method invocation has completed its return value will be displayed."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:275
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:279
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:306
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_06.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_06.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_06.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,604 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid ""
+"There are two distinct phases to the development of a TxCore application:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid ""
+"Developing the application(s) that make use of the new classes of objects."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid ""
+"The Java interface definition of this simple queue class is given below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:45
+#, no-c-format
+msgid "Constructors and deconstructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        numberOfElements = 0;\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:51
+#, no-c-format
+msgid "The constructor that creates a new persistent object is similar:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:55
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        super.terminate();\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:63
+#, no-c-format
+msgid "save_state, resotre_state and type"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:69
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        return \"/StateManager/LockManager/TransactionalQueue\";\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:74
+#, no-c-format
+msgid "enqueue/dequeue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:81
+#, no-c-format
+msgid "queueSize"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid ""
+"The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:86
+#, no-c-format
+msgid "inspectValue/setValue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:93
+#, no-c-format
+msgid "The client"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:104
+#, no-c-format
+msgid "Comments"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_07.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_07.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/Chapter_07.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,341 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr ""
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr ""
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:48
+#, no-c-format
+msgid "Specify the type of object store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:90
+#, no-c-format
+msgid "Any location the application can write to."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:137
+#, no-c-format
+msgid "Turns on or off (default) asynchronous prepare."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:156 Chapter_07.xml:167
+#, no-c-format
+msgid "JDBCAccess class name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:170
+#, no-c-format
+msgid "The JDBCAccess implementation to use for transaction object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:181
+#, no-c-format
+msgid "Enable or disable the one-phase commit optimization."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:192
+#, no-c-format
+msgid "Enable or disable read-only optimization for the second phase abort."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/JBoss_TS_Programmers_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,683 @@
+# translation of Appendix_A.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-04 09:35+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Implementações de armazenamento de objeto "
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "O ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "Neste apêndice, examinaremos as várias implementações de armazenamento de objeto TxCore, além de fornecer embasamento de como as demais implementações podem ser criadas e ligadas a um aplicativo."
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Esta liberação do JBossTS contém diversas implementações diferentes de um armazenamento básico de objeto. Cada um serve um propósito particular, além de ser, geralmente, otimizado para este princípio. Todas as implementações são derivadas da interface <interface>ObjectStore</interface>. Isto define as operações mínimas que devem ser fornecidas para que uma implementação de armazenamento de objeto possa ser usada pelo JBossTS. A implementação padrão de armazenamento de objeto pode ser substituída no período de rodagem pela configuração de variável de propriedade <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property>, para um dos tipos descritos abaixo:"
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 "O programadores não precisam interagir com qualquer uma das implementações de armazenamento de objeto diretamente, a não ser que, possivelmente, criá-las em primeiro lugar (mesmo que isto não seja necessário se o tipo de armazenamento padrão for usado como JBossTS, ele criará armazenamentos conforme necessário). Todos os armazenamentos manipulam instâncias da classe <classname>ObjectState</classname>, que são nomeadas usando um tipo (através do object's type() operation) e um Uid. Já para propósitos de ações atômicas, os estados de objeto no armazenamento podem estar basicamente em dois estados distintos: OS_COMMITTED e OS_UNCOMMITTED. Um estado de objeto inicializa no estado OS_COMMITTED, porém quando modificado sob controle de uma ação atômica, um segundo estado de objeto novo poderá ser gravado como pertecente ao estado OS_UNCOMMITTED. Caso a ação seja confirmada este segundo estado do objeto substitui o original e inicializa OS_COMMITTED!
 . Caso a ação seja abortada, este segundo estado do objeto é simplesmente descartado. Todas as implementações fornecidas com esta liberação manuseiam estas transições de estado fazendo uso de cópias ocultas destes estados de objeto. No entanto, qualquer outra implementação que mantém esta abstração é permitida. Os estados de objeto poderão tornar-se ocultos (e desta forma inacessíveis), sob o controle do sistema de recuperação de travamento."
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"A navegação através dos conteúdos de um armazenamento é possível através de <methodname>allTypes</methodname> e operações <methodname>allObjUids</methodname>. A <methodname>allTypes</methodname> retorna um <type>InputObjectState</type> contendo todos os nomes de tipos de todos os objetos, num armazenamento terminado por um nome nulo. A <methodname>allObjUids</"
+"methodname> retorna um <type>InputObjectState</type> que contém todos os Uids de todos os objetos de um dado tipo terminado pelo <methodname>Uid.nullUid()</methodname> especial."
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "Armazenamentos de objeto persistente"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "Esta seção descreve brevemente as características e otimizações de cada implementação fornecida pelo armazenamento de objeto persistente. Os estados de objeto persistente são mapeados na estrutura do sistema de arquivo suportado pelo sistema de operação host. "
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "Funcionalidade comum"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "Em adição aos recursos mencionados anteriormente, todos os armazenamentos de objeto de persistência fornecidos obedecem as seguintes regras:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Cada estado de objeto é armazenado no próprio arquivo nomeado usando o <code>Uid</code> do objeto."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "O tipo de um objeto (como dado pela operação <methodname>type()</methodname>) determina o diretório pelo qual o objeto é posicionado."
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "Todos os armazenamentos possui um diretório de raiz comum que é determinado quando o JBossTS for configurado. O nome deste diretório é automaticamente precedido de qualquer informação de raiz específica de armazenamento."
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Todos os arquivos também possuem noção do diretório de raiz localizado, do qual é automaticamente precedido do tipo de objeto, para determinar o nome do diretório final. O nome da raiz localizado é especificado quando o armazenamento for criado. Por padrão, o nome de raiz localizado é <code>defaultStore</code>. "
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "O armazenamento de ocultação"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+"Esta é a versão original do armazenamento do objeto conforme fornecido em liberações anteriores, além de ser implementado pela classe <classname>ShadowingStore</"
+"classname>. Este procedimento é simples e lento. Ele usa pares de arquivos para representar objetos (a versão oculta e a versão comprometida) e arquivos são abertos, bloqueados, operados, desbloqueados e fechados em cada interação com o armazenamento do objeto. Desta forma, porções significantes de tempo podem ser gastas no sistema apenas abrindo, fechando e renomeando arquivos, sendo que todas estas operações são bem caras."
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Caso substituirmos a implementação de armazenamento de objeto, o tipo deste armazenamento de objeto será <type>ShadowingStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "Sem bloqueamento do nível de arquivo"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr "Uma vez que os objetos transacionais são atualmente controlados através do <methodname>LockManager</methodname>, não é necessário impor um bloqueamento adicional ao nível do arquivo, pois a implementação ShadowingStore básica o faz. Portanto, a implementação de armazenamento de objeto padrão para o JBossTS, <methodname>ShadowNoFileLockStore</methodname>, baseia-se no bloqueamento de nível do usuário. Isto o ativa para fornecer um melhor desempenho do que o da implementação <methodname>ShadowingStore</methodname>. "
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "Caso substituindo a implementação de armazenamento de objeto, o tipo de armazenamento de objeto será <type>ShadowNoFileLockStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "O armazenamento com hash"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "O <code>HashedStore</code> possui a mesma estrutura para os estados do objeto como os armazenamentos ocultados. No entanto, ele possui uma estrutura de diretório alternativa que é melhor adaptada para o armazenamento de números maiores de objetos do mesmo tipo. O uso destes objetos de armazenamento são dispersos dentro de um conjunto de diretórios, apenas aplicando uma função de hash ao Uid do objeto. Por padrão, 255 sub-diretórios são usados. No entanto, isto pode ser substituído configurando a variável do ambiente <code>HASHED_DIRECTORIES</code> conseqüentemente."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "Caso substituirmos a implementação de armazenamento do objeto, o tipo deste armazenamento de objeto será <type>HashedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr "Uma vez que os objetos são regularmente controlados através do <methodname>LockManager</methodname>, não é necessário impor um bloqueamento adicional ao nível do arquivo, já que a implementação <methodname>ShadowingStore</methodname> básica o faz. Desta forma, a implementação de armazenamento do objeto padrão para JBossTS, <methodname>ShadowNoFileLockStore</methodname>, baseia-se no bloqueamento do nível do usuário. Isto o ativa para o fornecimento de um melhor desempenho que o da implementação <methodname>ShadowingStore</methodname>."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "O <code>HashedStore</code> possui a mesma estrutura para os estados do objeto como os armazenamentos ocultados. No entanto, ele possui uma estrutura de diretório alternativa que é melhor adaptada para o armazenamento de números maiores de objetos do mesmo tipo. O uso destes objetos de armazenamento são dispersos dentro de um conjunto de diretórios, apenas aplicando uma função de hash ao Uid do objeto. Por padrão, 255 sub-diretórios são usados. No entanto, isto pode ser substituído configurando a variável do ambiente <code>HASHED_DIRECTORIES</code> conseqüentemente."
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "O armazenamento JDBC"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 "O <methodname>JDBCStore</methodname> usa um banco de dados JDBC para salvar os estados de objeto persistente, quando usado em conjunção aos Objetos Transacionais, para que o suporte de transação aninhado Java API esteja disponível. Na implementação atual, todos os estados de objeto estão armazenados como Binary Large Objects (BLOBs) na mesma tabela. A limitação de tamanho de estado de objeto imposta é 64k, quando usando BLOBs. Caso uma tentativa seja feita para armazenar um estado de objeto que excede este limite, um erro será emitido e o estado não será armazenado. Desta maneira, a transação será conseqüentemente forçada a reversão."
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"Quando utilizando o armazenamento do objeto JDBC, o aplicativo deverá fornecer uma implementação da seguinte interface, localizada no pacote <code>com.arjuna."
+"ats.arjuna.objectstore</code>:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "A implementação desta classe é responsável em fornecer a <emphasis>Connection</emphasis>, da qual o JDBC ObjectStore usará para salvar e restaurar os estados do objeto:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<methodname>getConnection</methodname>: retorna a Conexão para uso. Este método irá ser chamado a qualquer instante que a conexão for solicitada e a implementação deve usar qualquer política necessária para determinar qual conexão retornar. Este método não precisa retornar a mesma instância de conexão mais de uma vez."
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: este método será chamado para retornar uma das Conexões adquiridas a partir do getConnection. As conexões serão retornadas caso qualquer erro ocorrer quando utilizando-as."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: este pode ser usado para passar informação arbitrária adicional para a implementação."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"O armazenamento do objeto JDBC inicializará a solicitação de números de conexões definidas na propriedade <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property>, além de não utilizar mais do que definido na propriedade <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+"A implementação da interface <interfacename>JDBCAccess</interfacename> para uso, deve ser configurada na variável da propriedade <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>."
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "Caso substituirmos a implementação de armazenamento de objeto, o tipo deste armazenamento do objeto será <type>JDBCStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"O armazenamento do objeto JDBC pode ser usado para gerenciamento do log de transação. Neste caso, a implementação do log de transação deve ser configurada para <property>JDBCActionStore</property> e a implementação <methodname>JDBCAccess</"
+"methodname> deve ser fornecida através da variável da propriedade <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>. Neste caso, o nome da tabela padrão é JBossTSTxTable."
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "É possível usar a mesma implementação JDBCAccess para ambos armazenamento do objeto do usuário e também o log de transação."
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "O armazenamento com cache"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "Este armazenamento de objeto usa o armazenamento de objeto com hash, mas não lê ou grava os estados para o armazenamento de backup persistente imediatamente. Isto mantém os estados num cache de memória volátil e tanto limpa o cache periodicamente ou quando ele estiver cheio. As associadas semânticas de falha com este armazenamento do objeto são diferentes dos armazenamentos de objeto persistentes normais, uma vez que a falha pode resultar em estados de desaparecimento do cache."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "Caso substituirmos a implementação do armazenamento do objeto, o tipo deste armazenamento do objeto será <type>CachedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "O armazenamento pode ser configurado com as seguintes propriedades:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> configura o número de armazenamentos internos para realizar o hash aos estados. O valor padrão é 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> é o valor máximo que o cache pode alcançar antes que a limpeza seja triggered. O padrão é de 10240 bytes."
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> é o número máximo de ítens removidos que o cache pode conter antes de uma limpeza ser triggered. Por padrão, as chamadas para remover um estado que está no cache irão simplesmente remover o estado do cache, mas deixar uma entrada em branco (ao invés de remover a entrada imediatamente, o que afetaria o desempenho do cache). Quando triggered, estas entradas são removidas do cache. O valor padrão é o dobro do tamanho do hash. "
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> é o número máximo de ítens que são permitidos para a construção no cache, antes do mesmo ser esvaziado. O valor do padrão é 100. "
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> configura o tempo em milhões de segundo para o esvaziamento periódico do cache. O padrão é 120 segundos."
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> determina se é que os esvaziamentos do cache são sync-ed para o disco. O padrão é OFF. Apenas ajuste para ON, no caso da ativação. "
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# translation of Appendix_B.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-04 09:51+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "Definições de classes"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "Este apêndice contém uma visão geral daquelas classes que o programador do aplicativo usará normalmente. O objetivo deste apêndice é fornecer um guia de referência rápido para estas classes, para o uso quando gravando os aplicativos em TxCore. Para melhor clareza, serão fornecidas apenas as interfaces protegidas e públicas das classes."
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "Biblioteca de classe"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Gerenciador de bloqueio"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-24 10:22+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Grupo de Documentação da Red Hat"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-02 14:09+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "Guia de Programadores do JBoss TS"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "Plataforma do JBoss Enterprise SOA"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "Este livro é a edição da Plataforma de Aplicativo Enterprise do Guia de Programadores do JBoss TS."
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,999 @@
+# translation of Chapter.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-02 16:36+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "Visão Geral"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"Este documento contém uma descrição de uso do mecanismo da transação <classname>TxCore</"
+"classname> e as classes e facilidades dos <firstterm>Objetos Transacionais para "
+"Java</firstterm>. As classes mencionadas neste capítulo são a chave principal para a gravação de aplicativos de falha tolerante usando transações. Desta maneira, após descrevê-las poderemos aplicá-las na construção de um simples aplicativo. As classes a serem descritas neste capítulo podem ser encontradas nos pacotes <classname>com.arjuna.ats.txoj</classname> e <classname>com.arjuna.ats.arjuna</classname>."
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – o mecanismo da transação"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+"Para manter a visualização de objeto orientado, os mecanismos necessários para construção de aplicativos distribuídos confiáveis estão presentes a programadores numa maneira de objeto orientado. Alguns mecanismos precisam ser herdados, por exemplo: o controle de concorrência e o gerenciamento de estado; enquanto outros mecanismos, como o armazenamento de objeto e transações, são implementados como objetos <classname>TxCore</"
+"classname>, dos quais são criados e manipulados como qualquer outro objeto. "
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"Quando o manual falar a respeito do uso de persistência e facilidades de controle de concorrência, ele estará assumindo que as classes dos <emphasis>Objetos Transacionais para Java</"
+"emphasis> (TXOJ) estão sendo utilizadas. Caso este não seja o caso, então o programador é responsável por todos estes assuntos."
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "O <classname>TxCore</classname> ataca as técnicas de objeto orientado de programadores atuais com o equipamento de ferramentas das classes Java, a partir de cada classe de aplicativo que pode ser herdada para a obtenção das propriedades desejadas, assim como persistência e controle de concorrência. Estas classes formam uma hierarquia, parte pela qual é apresentada abaixo e que será descrita adiante neste documento."
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Classe hierárquica TxCore"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr "Além da especificação dos escopos de transação e configuração de bloqueios apropriados com objetos, o programador do aplicativo não possui qualquer outra responsabilidade. O <classname>TxCore</classname> e os <emphasis>Objetos Transacionais para Java</emphasis> (TXOJ) garantem que os objetos transacionais serão registrados e dirigidos pelas transações apropriadas. Os mecanismos de recuperação de travamento são invocados automaticamente num evento de falha."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Salvando os estados do objeto"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"O <classname>TxCore</classname> precisa estar apto a lembrar do estado de um objeto por diversos propósitos, incluindo a recuperação (o estado representa o estado antigo do objeto) e persistência (o estado representa o estado final de um objeto na finalização do aplicativo). Uma vez que estes requerimentos possuem funcionalidade comum, eles são implementados usando o mesmo mecanismo: as classes <classname>InputObjectState</classname> e "
+"<classname>OutputObjectState</classname>. As classes mantêm um array interno em instâncias de tipo padrão que podem ser continuamente empacotadas (desempacotadas) usando as operações <command>pack</command> (<command>unpack</"
+"command>) apropriadas. Este buffer é automaticamente redimensionado conforme solicitação, no caso do mesmo possuir espaço insuficiente. As instâncias estão inteiramente armazenadas no buffer de forma padrão (chamada em ordem byte da rede), para fazê-las uma máquina independente. Qualquer outro formato independente de arquitetura (como um XDR ou ASN.1) pode ser implementado simplesmente substituindo as operações com os 1 apropriados, de codificação requerida."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "O armazenamento do objeto"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "As implementações de persistência podem ser afetadas por restrições impostas pelo Java SecurityManager. Portanto, o armazenamento do objeto fornecido pelo <classname>TxCore</classname> é implementado usando as técnicas de interface/implementação. A distribuição atual possui implementações que gravam os estados do objeto ao banco de dados ou sistema de arquivo local, além de implementações remotas, onde a interface usa um cliente stub (proxy) para os serviços remotos."
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "Os objetos persistentes são identificadores únicos determinados (instâncias de classe Uid), quando criados, e isto é usado para identificá-los com o armazenamento do objeto. Os estados são lidos usando a operação <literal>read_committed</literal> e gravados pelas operações <literal>write_(un)committed</literal>."
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "Recuperação e persistência"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"A classe <classname>StateManager</"
+"classname> encontra-se na raiz da classe hierárquica. Esta classe é responsável pela ativação, desativação e recuperação do objeto. A assinatura simplificada da classe é a seguinte: "
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "Os objetos podem ser classificados em três maneiras diferentes. Eles poderão ser simplesmente recuperáveis. Neste caso, o <classname>StateManager</classname> tentará gerar e manter a informação de recuperação apropriada para o objeto. Tais objetos possuem ciclos de vida que não excedem o programa do aplicativo que os criou. Os objetos podem ser recuperáveis e persistentes, dos quais espera-se que o ciclo de vida do objeto seja maior que o de criação ou aplicativo de acesso. Adicionado isto à sustentação de informação de recuperação do <classname>StateManager</classname>, eles tentarão carregar (descarregar) automaticamente qualquer estado de persistência existente do objeto, chamando a operação de ativação (desativação) em períodos apropriados. E por último, os objetos talvez não possuam nenhuma destas capacidades, e, neste caso, a informação de recuperação nunca será mantida e nem mesmo a tentativa de ativação/desativação auto!
 mática do objeto será realizada.  "
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Caso um objeto seja recuperável ou recuperável e persistente, então o <classname>StateManager</classname> invocará as operações <command>save_state</command> (enquanto desempenhando <command>deactivate</"
+"command>) e <command>restore_state</command> (enquanto executando a ativação), em diversos pontos durante a execução do aplicativo. Estas operações devem ser implementadas durante a execução do aplicativo. Elas precisam ser implementadas pelo programador uma vez que o <classname>StateManager</"
+"classname> não pode detectar as mudanças de estado a nível do usuário. (Estamos examinando a geração automática das operações <command>save_state</command> e "
+"<command>restore_state</command> padrões, para permitir que o programador substitua isto quando o conhecimento específico do aplicativo possa ser usado, melhorando a eficiência.) Isto dá ao programador a habilidade de decidir quais partes de um estado do objeto deveriam ser construídas persistentes. Por exemplo: para uma planilha não será necessário salvar todas as entradas caso alguns valores possam ser simplesmente re-computados. A implementação <command>save_state</command> para um <classname>Example</classname> de classe, que possui variáveis de membros integrados chamados A, B e C, pode parecer-se com:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+"Os objetos podem ser classificados em três maneiras diferentes. Eles poderão ser simplesmente <emphasis>recuperáveis</emphasis>. Neste caso, o <classname>StateManager</classname> tentará gerar e manter a informação de recuperação apropriada para o objeto. Tais objetos possuem ciclos de vida que não excedem o programa do aplicativo que os criou. Os objetos podem ser <emphasis>recuperáveis e persistentes</emphasis>, dos quais espera-se que o ciclo de vida do objeto seja maior que o de criação ou aplicativo de acesso. Adicionado isto à sustentação de informação de recuperação do <classname>StateManager</classname>, eles tentarão carregar (descarregar) automaticamente qualquer estado de persistência existente do objeto, chamando a operação de <classname>ativação</classname> (<classname>desativação</"
+"classname>) em períodos apropriados. E por último, os objetos talvez não possuam nenhuma destas capacidades, e, neste caso, a informação de recuperação nunca será mantida e nem mesmo a tentativa de ativação/desativação automática do objeto será realizada. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr "Caso um objeto seja <emphasis>recuperável</emphasis> ou <emphasis>recuperável e persistente</emphasis>, então o <classname>StateManager</classname> invocará as operações <command>save_state</command> (enquanto executando a <command>deactivate</command>) e <command>restore_state</command> (enquanto executando <command>activate</command>), em vários pontos durante a execução do aplicativo. Estas operações devem ser implementadas pelo programador uma vez que o <classname>StateManager</classname> não pode detectar as mudanças de estado a nível do usuário. (Estamos examinando a geração automática das operações <classname>save_state</classname> e <classname>restore_state</classname> padrões, para permitir que o programador substitua isto quando o conhecimento do específico aplicativo possa ser usado, melhorando o desempenho.) Isto fornece ao programador a habilidade de decidir quais partes de um estado do objeto devem ser persistentes. Por exemplo: p!
 ara uma planilha talvez não seja necessário salvar todas as entradas, alguns valores poderão simplesmente ser re-computados. A implementação <classname>save_state</classname> para a classe <classname>Example</classname>, que possui variáveis de membros integrados chamados A, B e C, pode parecer-se com:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"É necessário que todos os métodos <command>save_state</command> e <command>restore_state</command> chamem o <classname>super.save_state "
+"</classname> e <classname>super.restore_state</classname>. A intenção disto é prover melhoramentos nos mecanismos de recuperação de travamento. "
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "O ciclo de vida de um Objeto Transacional para Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"Espera-se que o objeto de persistência, que não está em uso, mantenha um estado <emphasis>passivo</"
+"emphasis> com seu próprio estado residindo num armazenamento de objeto e <emphasis>ativado</emphasis> sob solicitação. O principal ciclo de vida deste objeto de persistência no <emphasis>TXOJ</emphasis> é demonstrado em <xref linkend="
+"\"figure_2\"/>."
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "O ciclo de vida de um objeto de persistência."
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "O objeto é inicialmente passivo e é armazenado no armazenamento de objeto como uma instância de classe <classname>OutputObjectState</classname>."
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+"O objeto é automaticamente ativado realizando apenas a leitura do armazenamento, quando solicitado por um aplicativo. Tudo isto, usando uma operação <command>read_committed</command> e sendo então convertido a partir de uma instância <classname>InputObjectState</"
+"classname>, dentro de um objeto completado pela operação <command>restore_state</command> do objeto."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "Uma vez que o aplicativo tenha finalizado com o objeto, ele será desativado convertendo-o de volta a uma instância <classname>OutputObjectState</classname>, usando a operação <command>save_state</command>. Após isto, ele é novamente armazenado no armazenamento do objeto como uma cópia sombra, usando write_uncommitted. Esta cópia sombra pode ser confirmada, substituindo a versão anterior utilizando a operação <command>commit_state</command>. A existência das cópias sombras é normalmente ocultada do programador pelo sistema de transação. Normalmente, a desativação do objeto apenas ocorre quando a transação de nível superior em que o objeto foi ativado confirmar."
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "O objeto de persistência poderá ser ativo e então passivo muitas vezes durante o próprio ciclo de vida. "
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "O controlador de concorrência"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "O controlador de concorrência é implementado pela classe <classname>LockManager</classname> que fornece um comportamento padrão sensível, enquanto permitindo que o programador substituí-la caso considerada necessária pelas semânticas específicas de classe sendo programadas. Assim como o <classname>StateManager</classname> e persistência, as implementações de controle de concorrência são acessadas através das interfaces. Adicionado ao fornecimento de acesso a serviços remotos, as implementações de controle de concorrência disponíveis a interfaces incluem:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "implementação do disco local/banco de dados, onde os bloqueios tornam-se persistentes ao serem gravados ao sistema de arquivo local ou banco de dados."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "uma implementação puramente local, onde os bloqueios são mantidos com a memória da máquina virtual que os criou. Esta implementação possui um melhor desempenho do que quando gravando bloqueios a discos locais. No entanto, os objetos não podem ser compartilhados entre máquinas virtuais. E, o mais importante, isto é um objeto Java básico sem nenhuma solicitação que pode ser afetada pelo SecurityManager."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "A interface do programador primário ao controlador de concorrência é feita através da operação setlock. Por padrão, o sistema de rodagem reforça o bloqueamento bifásico seguindo uma leitura múltipla, política de gravação única baseada no objeto. No entanto, conforme demonstrado em <xref linkend=\"figure_1\"/>, é possível que programadores forneçam suas próprias implementações de bloqueio com diferentes regras de conflito de bloqueio com a finalidade de capacitar o <firstterm>controle de concorrência de tipo específico</firstterm>, por herança a partir da classe de <classname>Lock</classname>."
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "A aquisição de bloqueio está sob controle do programador, uma vez que o <classname>StateManager</classname> não pode determinar se uma operação modifica um objeto. O <classname>LockManager</classname> não pode determinar se uma operação solicita uma leitura ou bloqueio de gravação. No entanto, a liberação de bloqueio está sob o controle do sistema e não requer qualquer intervenção por parte do programador. Isto garante que a propriedade bifásica pode ser corretamente mantida."
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"A classe <classname>LockManager</classname> é primeiramente responsável pelas solicitações de gerenciamento para determinar um bloqueio em um objeto ou para liberar um bloqueio conforme seja apropriado. No entanto, uma vez que isto deriva-se de um <classname>StateManager</"
+"classname>, ela pode também controlar quando algumas das facilidades herdadas são invocadas. Por exemplo: o <classname>LockManager</classname> assume que a configuração de um bloqueio de gravação implica que a operação de invocação deve ser referente à modificação do objeto. Isto poderá causar em retorno o salvamento da informação de recuperação, caso o objeto seja recuperável. Similarmente, a aquisição de bloqueio sucedida com êxito causa a invocação da ativação."
+
+#. 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 "O código abaixo apresenta como nós tentaremos obter um bloqueio de gravação num objeto:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "O mecanismo do protocolo de transação"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "O mecanismo de protocolo de transação é representado pela classe <classname>AtomicAction</classname>, que usa o <classname>StateManager</classname> com a finalidade de gravar informações suficientes de mecanismos de recuperação de travamento. Tudo isto, com a finalidade de completar a transação em um evento de falha. Isto possui métodos para inicialização e encerramento da transação, e para situações onde programadores solicitam a implementação dos próprios recursos, existem métodos para registrá-los com a transação atual. Caso a transação seja iniciada com o escopo de uma transação já executada, ela será automaticamente aninhada, baseando-se no fato de que o <emphasis>TxCore</emphasis> suporta sub-transações."
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "O <emphasis>TxCore</emphasis> está ciente da multi-segmentação, permitindo que cada segmento de um aplicativo compartilhe uma transação ou execute-a em sua própria transação. Portanto, todas as classes são também segmentadas com segurança."
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "O simples exemplo abaixo ilustra as relações entra a ativação, encerramento e confirmação:"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "A execução dos códigos acima envolve a seguinte seqüência de atividades: "
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"A criação de bindings para objetos de persistência. Isto pode envolver a criação de objetos stub e uma chamada de objetos remotos. No exemplo acima, nós usamos novamente o binding para um objeto de persistência existente identificado pelo <literal>Name-A</"
+"literal>, além de um novo objeto de persistência. O sistema de nomeação para objetos remotos mantém o mapeamento entre nomes de objetos e localizações. Você poderá encontrar maiores informações referentes a esta questão nos capítulos seguintes."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "Inicialização da transação atômica."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "As invocações de operação. Como parte de uma invocação dada, a implementação do objeto é responsável em garantir que isto está bloqueado na leitura ou gravação do modo (assumindo que não há conflito no bloqueamento). E, se necessário inicializada com o último estado confirmado a partir de um armazenamento do objeto. A primeira vez que um bloqueio é adquirido num objeto dentro de uma transação, o estado do objeto é adquirido, se possível, a partir do armazenamento do objeto."
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "Confirmação da ação de nível superior. Isto inclui a atualização do estado de qualquer objeto modificado num armazenamento de objeto."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "Quebra de bindings criadas anteriormente."
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "A classe hierárquica"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+"As classes principais que constituem a classe hierárquica do <emphasis>TxCore</"
+"emphasis> são descritas abaixo:"
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"Os programadores dos aplicativos de falha de tolerância serão primeiramente concedidos com as classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"e <classname>AtomicAction</classname>. Outras classes importantes para um programador são o <classname>Uid</classname> e <classname>ObjectState</classname>. A maioria das classes são derivadas da classe base de <classname>StateManager</classname>, que fornece facilidades primitivas necessárias para o gerenciamento de objetos de recuperação e persistência. Estas facilidades incluem o suporte para a ativação e desativação dos objetos e recuperação do objeto de estado baseado. A classe <classname>LockManager</"
+"classname> usa facilidades do <classname>StateManager</classname> e "
+"<classname>Lock</classname> para fornecer o controle atual (bloqueamento bifásico na implementação atual) solicitado para a implementação da propriedade serializada de ações atômicas. A implementação de facilidades de ação atômica é suportada pela <classname>AtomicAction</classname> e "
+"<classname>TopLevelTransaction</classname>."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+"A maioria das classes de sistema são derivadas a partir da classe de base de <classname>StateManager</classname>, da qual fornece facilidades primitivas necessárias para o gerenciamento de objetos de persistência e recuperação. Estas facilidades incluem o suporte de ativação e desativação dos objetos e recuperação do objeto de estado baseado. A classe <classname>LockManager</"
+"classname> usa as facilidades do <classname>StateManager</classname> e fornece o controle de concorrência requerido pela implementação da propriedade serializada de ações atômicas."
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"Considere um simples exemplo. Assuma que o <classname>Example</classname> é uma classe de persistência do usuário definido derivada de um <classname>LockManager</classname>. Um aplicativo contendo um Trans de transação atômica acessa um objeto (chamado 0) de tipo de <classname>Example</"
+"classname>: Tudo isto, pela invocação da operação op1, que envolve mudanças de estado para 0. A propriedade de serialização requer que um bloqueio de gravação deve ser adquirido em 0, antes disto ser modificado. Desta forma, o corpo do op1 deverá conter uma chamada para a operação <literal>setlock</literal> de controlador de concorrência:"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr "A operação <literal>setlock</literal> fornecida pela classe <classname>LockManager</classname> fornece as seguintes funções nesta situação:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Verifiqua a compatibilidade de bloqueio de gravação com os bloqueios retidos no momento, e se permitido:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"Chama a ativação da operação <classname>StateManager</classname> que carregará, caso ainda não tenha sido carregado, o último estado de persistência 0 a partir do armazenamento do objeto. E, então chama a operação <classname>StateManager</classname> modificada que possui efeito de criação de uma instância de <classname>RecoveryRecord</classname> ou <classname>PersistenceRecord</"
+"classname> para 0, dependendo se 0 era persistente ou não (o Bloqueio é um bloqueio <literal>WRITE</literal>, então o estado antigo do objeto deve ser mantido antecipadamente à modificação). Além disso, insere isto numa <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 "Cria e insire uma instância LockRecord no RecordList da Trans."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"Vamos supor que a ação <literal>Trans</literal> foi abortada em algum momento após o bloqueio ter sido adquirido. Então, a operação de reversão da <classname>AtomicAction</classname> processará a instância de <classname>RecordList</"
+"classname> associada com <literal>Trans</literal>, pela invocação numa operação <literal>Abort</literal> apropriada em várias gravações. A implementação desta operação pela classe <classname>LockRecord</classname> irá liberar o bloqueio <literal>WRITE</literal> enquanto que o <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> restaurará o estado prévio do 0."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr "É importante perceber que todos os trabalhos acima são automaticamente executados pelo <emphasis>TxCore</emphasis>, em nome do programador do aplicativo. O programador precisa apenas inicializar a transação e definir um bloqueio apropriado. O <emphasis>TxCore</emphasis> e os <emphasis>Objetos Transacionais para Java</emphasis> cuidam do registro do participante, persistência, controle de concorrência e recuperação."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1758 @@
+# translation of Chapter_02.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 11:22+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "Usando TxCore "
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr "Neste seção descreveremos em mais detalhes o <emphasis>TxCore</emphasis> e os <emphasis>Objetos Transacionais para Java</emphasis>, além de demonstrar como isto pode ser utilizado para construir aplicativos transacionais."
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "Gerenciamento de estado"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "Estados do Objeto"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"O <emphasis>TxCore</emphasis> precisa estar apto a relembrar o estado de um objeto por inúmeros propósitos, incluindo a recuperação (o estado representa algum estado passado do objeto), e para a persistência (o estado representa o estado final de um objeto no término do aplicativo). Uma vez que todos estes requerimentos solicitam funcionalidade comum, eles são implementados usando o mesmo mecanismo - as classes <classname>Input/OutputObjectState</classname> "
+"e <classname>Input/OutputBuffer</classname>. "
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"A classe <classname>Input/OutputBuffer</classname> mantém um array interno da instância de tipos de Java padrão da qual pode ser continuamente empacotada (desempacotada) usando as operações de empacotar (desempacotar). Este buffer é automaticamente remodelado em caso dele possuir espaço insuficiente. As instâncias estão todas armazenadas no buffer de forma padrão (então chamadas network "
+"byte order) com a finalidade de fazê-las trabalhar independemente. "
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+"A classe <classname>Input/OutputObjectState</classname> fornece toda a funcionalidade do <classname>Input/OutputBuffer</classname> (através da herança), mas adiciona duas variáveis da instância extras, das quais significam o Uid e tipo de objeto para cada instância <classname>Input/OutputObjectState</"
+"classname>, sendo que esta é uma imagem compacta. Isto é usado quando acessando o armazenamento do objeto durante o armazenamento e recuperação do estado do objeto."
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "O armazenamento do objeto"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "O armazenamento do objeto fornecido com <emphasis>TxCore</emphasis> possui deliberadamente uma interface correta restringida, da qual pode ser implementada em diversas maneiras. Por exemplo, os armazenamentos do objeto estão implementados na memória compartilhada; no sistema de arquivo Unix (em muitas maneiras diferentes) e como um armazenamento remoto acessível. Você poderá encontrar no Apêndice informações mais completas referentes à disponibilidade de armazenamentos de objetos em <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 "Assim como todas as classes <emphasis>TxCore</emphasis>, os armazenamentos de objeto padrões são implementações Java pura. É necessário usar métodos nativos para o acesso à memória compartilhada e outras implementações de armazenamento de objeto complexo."
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"Todos os armazenamentos do objeto retêm e recuperam instâncias das classes <classname>Input/OutputObjectState</classname>. Estas instâncias são nomeadas pela Uid e Type de Objeto que as mesmas representam. Os estados são lidos usando a operação <command>read_committed</command> e gravados pelo sistema usando a operação <command>write_uncommitted</command>. Sob operação normal, os estados de objetos novos não substituem estados de objetos antigos, mas são gravados pelo armazenamento como cópias ocultas. Estas cópias ocultas substituem as originais apenas quando a operação <command>commit_state</command> for invocada. Normalmente, toda a interação com o armazenamento do objeto é executada pelos componentes de sistema <emphasis>TxCore</"
+"emphasis> como apropriada, assim como a existência de qualquer versão oculta de objetos no armazenamento está oculta ao programador."
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"Quando o objeto transacional for executado, é necessário que ele efetue certas mudanças do estado persistente de forma que isto possa ser recuperado num evento de uma falha e também continue a execução ou reversão. Quando usando os <emphasis>Objetos Transacionais para Java</emphasis>, o <emphasis>TxCore</"
+"emphasis>  irá cuidar disto automaticamente. Para garantir as propriedades ACID, estas mudanças de estado devem ser esvaziadas para a implementação de armazenamento persistente, antes que a transação possa proceder para a execução. Caso elas não sejam esvaziadas, o aplicativo assumirá que a transação foi executada quando de fato as mudanças de estado ainda estiverem residindo com um cache de sistema de operação, além de poder ocorrer o perdido de falha do sistema subseqüentemente. Por padrão, o <emphasis>TxCore</emphasis> garante que tais mudanças de estado foram esvaziadas. No entanto, esta tarefa pode impor uma penalidade de desempenho significante no aplicativo. Para prevenir o esvaziamento do estado do objeto transacional, configure a variável <literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> para OFF."
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr "Selecionando uma implementação de armazenamento de objeto"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"O <emphasis>TxCore</emphasis> vem com suporte para diversas implementações de armazenamento de objeto diferenciadas. O apêndice descreve estas implementações como selecionar e configurar uma implementação fornecida (usando a variável da propriedade <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal>) baseando-se no objeto, além de indicar como implementações adicionais podem ser fornecidas."
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr "A classe <emphasis>TxCore</emphasis> <classname>StateManager</classname> gerencia o estado de um objeto e fornece todo mecanismo de suporte básico solicitado por um objeto para o propósito de gerenciamento de estado. O <classname>StateManager</classname> é responsável por criar e registrar os recursos apropriados relacionados com a persistência e recuperação do objeto transacional. Caso a transação seja aninhada, então o <classname>StateManager</classname> irá também propagar estes recursos entre transações child e seus parents no período de execução."
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 "Os objetos em <emphasis>TxCore</emphasis> são indicados como três possíveis classificações básicas. Eles poderão ser simplesmente recuperáveis, neste caso o <classname>StateManager</classname> tentará gerar e manter a informação de recuperação apropriada para o objeto (como as instâncias da classe <classname>Input/OutputObjectState</classname>). Estes determinados objetos possuem um ciclo de vida que não excede o programa do aplicativo que os cria. Os objetos poderão ser recuperáveis e persistentes, neste caso o tempo de vida do objeto é presumido como maior do que daquele de criação ou de acesso de aplicativo. Adicionado a informação de recuperação mantida, o <classname>StateManager</classname> tentará carregar (descarregar) automaticamente qualquer estado de persistência existente para o objeto chamando a operação <command>activate</command> (<command>deactivate</command>) em períodos apropriados. Finalmente, os objetos talvez não pos!
 suam nenhuma destas capacidades. Neste caso, nenhuma informação de recuperação é mantida nem mesmo uma tentativa de ativação/desativação do objeto automaticamente. Esta propriedade do objeto é selecionada no período de construção do objeto e não pode ser modificada desde então. Dessa forma, um objeto não pode ganhar (ou perder) capacidades de recuperação em algum ponto arbitrário durante o próprio ciclo de vida. "
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+"Caso um objeto seja recuperado (ou persistente) então o <classname>StateManager</"
+"classname> invocará as operações <command>save_state</command> (enquanto executando a <command>deactivation</command>), <command>restore_state</"
+"command> (enquanto executando a ativação) e tipo em vários pontos durante a execução do aplicativo. Estas operações devem ser implementadas pelo programador uma vez que o <classname>StateManager</classname> não possui acesso a descrição de execução do layout de um objeto Java arbitrário em memória. Desta forma, ele não pode implementar a política padrão para conversão da versão de memória do objeto à sua própria forma passiva. No entanto, as capacidades fornecidas pelo <classname>Input/OutputObjectState</classname> fazem a gravação destas rotinas bastante simples. Por exemplo, a implementação <command>save_state</"
+"command> para a classe <classname>Example</classname> possuía as variáveis de membro chamadas A, B e C e poderia parecer-se com o seguinte:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+"Com a finalidade de suportar a recuperação de travamento para objetos de persistência, é necessário que todos <command>save_state</command> e métodos <command>restore_state</command> de objetos do usuário chamem o <command>super.save_state</command> e o "
+"<command>super.restore_state</command>."
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "O método tipo é usado para determinar a localização no armazenamento do objeto onde o estado das instâncias daquela classe serão salvas e por fim restauradas. Na realidade, isto pode ser qualquer seqüência válida. No entanto, você deverá evitar o uso do caracter (#), pois ele é reservado para diretórios especiais que solicitam o <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+"A operação <command>get_uid</command> do <classname>StateManager</"
+"classname> fornece apenas o acesso de leitura para um nome do sistema interno do objeto para qualquer que seja o propósito que o programador pretenda solicitar (como inscrição do nome em um servidor de nome). O valor do nome de sistema interno pode apenas ser configurado quando um objeto é inicialmente construído - tanto pela provisão de um parâmetro explícito ou pela geração de um novo identificador, uma vez que o objeto for criado."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "O método <command>destroy</command> pode ser usado para remover o estado do objeto a partir do armazenamento do objeto. Esta é uma operação anatômica, e portanto removerá apenas o estado se a transação de nível superior com que ela foi invocada eventualmente confirmar. O programador deve obter um acesso exclusivo ao objeto prévio para a invocação desta operação."
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "Desde que a persistência e recuperação do objeto possuam solicitações complementares (a única diferença está onde a informação de estado é armazenada e qual é sua finalidade), o <classname>StateManager</classname> efetivamente combina o gerenciamento destas duas propriedades dentro de um mecanismo único. Quer dizer, ele usa a instância de ambas as classes Input/OutputObjectState para fins de recuperação e persistência. Uma discussão adicional passada ao <command>save_state</command> e operações <command>restore_state</command> permite o programador determinar o propósito pelo qual qualquer invocação dada está sendo feita, assim como permitir que informações diferentes sejam salvas para os propósitos de recuperação e persistência."
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "Modelos de Objeto"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "O <emphasis>TxCore</emphasis> suporta dois modelos para objetos, pelos quais apresentaremos de fato, como um estado de objetos e controle atual são implementados: "
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>: apenas uma única cópia de objeto existe no aplicativo. Isto irá residir com um único JVM e todos os clientes deverão endereçar suas invocações a este servidor. Este modelo fornece um melhor desempenho, mas representa um único ponto de falha. E, caso ele se encontre em um ambiente multi-segmentado, ele talvez não proteja o objeto de corromper-se, caso um segmento único falhar."
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Modelo do Objeto Único"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE: logicamente uma instância única do objeto existe, porém estas cópias estão distribuídas através de diferentes JVMs. O desempenho deste modelo é pior do que um modelo único, porém isto fornece melhor isolação de falha."
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Modelo do Objeto Múltiplo"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"O modelo padrão é SINGLE. O programador pode substituí-lo baseando-se no objeto, apenas fornecendo uma instância apropriada da classe <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname>, na construção do objeto."
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "O modelo pode ser mudado entre cada instanciação sucessiva do objeto. Por exemplo: isto não precisa ser o mesmo durante o ciclo de vida do objeto."
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr "Para fornecer uma classe <classname>ObjectName</classname> adequada, é necessário executar os seguintes passos:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "criar uma nova instância do <classname>ObjectName</classname>."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"configurar o atributo do modelo do objeto usando o nome <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>"
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "Por exemplo:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Sumário"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"Em resumo, a classe <emphasis>TxCore</emphasis> gerencia o estado de um objeto e fornece os mecanismos de suporte básicos por um objeto, para fins de gerenciamento de estado. Algumas operações devem ser definidas pelo desenvolvedor de classe. Estas operações são: <command>save_state</command>, <command>restore_state</command>, e "
+"<command>type</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"Invocado a qualquer instante em que o estado de um objeto precisa ser salvo para um uso futuro - primeiramente para fins de recuperação e persistência. O parâmetro <literal>ObjectType</literal> indica a razão pela qual o <command>save_state</command> foi invocado pelo <emphasis>TxCore</emphasis>. Isto permite que o programador salve pedaços diferentes de informação dentro do objeto <classname>OutputObjectState</classname> fornecido como primeiro parâmetro, baseando-se na necessidade ou não do estado, para fins de recuperação e persistência. Por exemplo, os ponteiros de outros objetos <emphasis>TxCore</emphasis> poderão ser salvos para fins de recuperação, mas como Uid para fins de persistência. Conforme apresentado anteriormente, a classe <classname>OutputObjectState</"
+"classname> fornece operações convenientes para permitir que as instâncias sejam salvas em todos os tipos básicos de Java. É necessário que todos os métodos <command>save_state</"
+"command> chamem o <command>super.save_state</command>, com a finalidade de suportar a recuperação de travamento para objetos de persistência. "
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "O <command>save_state</command> assume que um objeto é internamente consistente e que todas as variáveis salvas possuem valores válidos. Isto é responsabilidade do programador garantir que esta situação aconteça."
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType) "
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 "Invocado a qualquer instante em que o estado de um objeto precisa ser restaurado para aquele fornecido. O segundo parâmetro permite interpretações diferentes do estado fornecido. É necessário que todos os métodos <command>restore_state</command> chamem <command>super.restore_state</command>, com o objetivo de suportar a recuperação de travamento para objetos de persistências."
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "String type ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"O mecanismo de persistência <emphasis>TxCore</emphasis> solicita um meio para determinar o tipo de um objeto, assim como uma seqüência para que ele possa salvar/restaurar o estado do objeto para/do armazenamento do objeto. Por tratado, esta informação indica a posição da classe de hierarquia. Por exemplo, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "Considere a seguinte classe <classname>Array</classname> básica, derivada da classe <classname>StateManager</classname> (neste exemplo, com o objetivo de ilustrar a restauração e o procedimento para salvar um estado de objeto, a variável highestIndex é usada para supervisionar o maior elemento do array, do qual possui um valor diferente de zero):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr "O <command>save_state</command>, <command>restore_state</command> e operações <command>type</command> podem ser definidos como segue a seguir:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Gerenciamento de bloqueio e controle atual"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 "A informação de controle atual com o <emphasis>TxCore</emphasis> é mantida pelos bloqueios. Os bloqueios, que são solicitados a compartilharem-se entre objetos em processos diferentes, poderão ser mantidos com o armazenamento de bloqueio, similarmente à facilidade de armazenamento de objeto apresentada anteriormente. O armazenamento de bloqueio fornecido com o <emphasis>TxCore</emphasis> possui deliberadamente uma interface correta restringida, de maneira que isto pode ser implementada numa porção de diferentes maneiras. Por exemplo, os armazenamentos de bloqueio são implementados numa memória compartilhada, no sistema de arquivo Unix (em muitas formas diferentes) e como um armazenamento acessível remoto. Para maiores informações a respeito dos armazenamentos de objeto disponíveis no <emphasis>TxCore</emphasis>, por favor dirija-se ao Apêndice."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "Assim como todas as classes <emphasis>TxCore</emphasis>, os armazenamentos de bloqueio padrões são pura implementação Java. É necessário usar métodos nativos para acessar a memória compartilhada e outras mais complexas."
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Selecionando uma implementação de armazenamento de bloqueio"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"O <emphasis>TxCore</emphasis> vem acompanhado de suporte para diversas implementações de armazenamento de objeto. Caso um modelo de objeto seja usado como SINGLE, não haverá solicitação do armazenamento de bloqueio para manter os bloqueios, uma vez que o objeto não é exportado. No entanto, caso o modelo MULTIPLE seja usado, diferentes ambientes de rodagem (processo, máquinas virtuais Java) provavelmente precisarão compartilhar a informação de controle atual. O tipo de implementação do armazenamento de bloqueio para uso pode ser especificada para todos os objetos com um ambiente de execução, usando a variável de propriedade <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>. Atualmente, isto pode ter um dos seguintes valores:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "Isto é uma implementação que, pelo padrão, não permite o compartilhamento de informação armazenada entre ambientes de execução. O programador do aplicativo é responsável pelo compartilhamento da informação de armazenamento."
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"Esta é a implementação padrão e armazena informação de bloqueamentos armazenados no sistema de arquivo local. Desta forma, os ambientes de execução que dividem o mesmo armazenamento de arquivo podem compartilhar a informação de controle atual. A raiz do sistema de arquivo em que a informação de bloqueamento é gravada, é o diretório <filename>LockStore</"
+"filename> com o diretório de instalação <emphasis>TxCore</emphasis>. Isto pode ser substituído no período de execução configurando a variável de propriedade <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> ou estabelecendo a localização com a <literal>CLASSPATH</literal>:"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>ou</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "Caso nenhuma destas abordagens sejam tomadas, a localização padrão estará no mesmo nível do diretório <filename>etc</filename> da instalação."
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 "O controlador atual é implementado pela classe <classname>LockManager</classname>, da qual fornece um comportamento padrão concreto enquanto permitindo que o programador substitua a mesma, caso isto seja considerado necessário pela semântica particular da classe sendo programada. A interface do programador primária para o controlador atual é feita através da operação setlock. Por padrão, o sistema de execução <emphasis>TxCore</emphasis> reforça o bloqueamento bifásico total seguindo uma leitura múltipla, política de leitura múltipla baseado por objeto. A aquisição do bloqueio está sob controle do programador, uma vez que o <classname>StateManager</classname> não pode determinar se uma operação modifica um objeto. O <classname>LockManager</classname> não pode determinar se uma operação solicita um bloqueio de leitura e gravação. No entanto, a liberação de bloqueio está normalmente sob controle do sistema e não requer futura intervençÃ!
 £o por parte do programador. Isto significa que a propriedade bifásica pode ser corretamente mantida."
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"A classe <classname>LockManager</classname> é primeiramente responsável pelas solicitações gerenciadas para configurar um bloqueio ou para liberar um bloqueio conforme apropriado. No entanto, uma vez que ela é derivada de um <classname>StateManager</"
+"classname>, ela pode também controlar quando algumas das facilidades hierárquicas são invocadas. Por exemplo, caso uma solicitação de determinação de bloqueio de gravação seja concedida, o <classname>LockManager</classname> invocará a determinação diretamente modificada, da qual a configuração de um bloqueio de gravação implica que a operação de invocação deve ser referente a modificação do objeto. Isto poderá resultar no salvamento de informação de recuperação, caso o objeto seja recuperado. Num processo parecido, a aquisição de bloqueio com êxito causa a invocação do <command>activate</command>."
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"Portanto, o <classname>LockManager</classname> é diretamente responsável pelos objetos de persistência de ativação/desativação e registro de <classname>Resources</classname> para gerenciamento de controle local. Caso conduzirmos a classe <classname>StateManager</classname>, isto será também responsável pelo registro de <classname>Resources</classname>, para manipulação de estado de recuperação/persistência e recuperação de objeto. O programador do aplicativo simplesmente determina os bloqueios apropriados e finaliza as transações. Além disso, ele estende o <command>save_state</command> e métodos <command>restore_state</"
+"command> do <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "A operação <command>setlock</command> deve ser parametrizada com o tipo de bloqueamento solicitado (<literal>READ</literal> / <literal>WRITE</literal>), e o número de entradas para adquirir o bloqueamento antes da desistência. Caso um conflito de bloqueio ocorrer, um dos seguintes cenários tomarão espaço:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"Caso o valor de entrada seja igual ao <literal>LockManager.waitTotalTimeout</"
+"literal>, a seqüência que chama o <command>setlock</command> será bloqueada até que o bloqueio seja liberado ou o tempo total especificado tenha sido transcorrido. Neste caso, o <literal>REFUSED</literal> será retornado."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+"Caso o bloqueio não possa ser obtido imediatamente, o <classname>LockManager</"
+"classname> tentará um número específico de entradas, esperando pelo valor de tempo especificado entra cada tentativa de falha. O padrão é de 100 tentativas, sendo cada tentativa separada por 0.25 segundos de espera. O tempo entre entradas é especificado em micro-segundos."
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "Caso ocorra um conflito de bloqueio, a implementação atual simplesmente concederá um intervalo às solicitações de bloqueio, prevenindo desta forma congelamentos, ao invés de fornecer um esquema completo de detenção de congelamento. Caso o bloqueio solicitado seja obtido, a operação setlock retornará o valor <literal>GRANTED</literal>. Do contrário, o valor <literal>REFUSED</literal> será retornado. É responsabilidade do programador garantir que o restante do código para uma operação seja apenas executada se uma solicitação de bloqueio for concedida. Segue abaixo exemplos do uso da operação <command>setlock</command>. "
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "O mecanismo de controle atual é integrado ao mecanismo de ação atômica, assim como a garantia de que os bloqueios estão concedidos numa informação apropriada do objeto. Esta é registrada com a ação atômica de execução atual, da qual os bloqueios são liberados no tempo correto. Isto isenta o programador da carga de liberação explícita de quaisquer bloqueios adquiridos, caso eles fossem adquiridos com ações atômicas. No entanto, se os bloqueios forem adquiridos num objeto <emphasis>fora</emphasis> do escopo de uma ação atômica, será responsabilidade do programador liberar os bloqueios quando solicitados, usando a operação <command>releaselock</command> correspondente."
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "Política de bloqueamento"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"Diferente de muitos outros sistemas, os bloqueios em <emphasis>TxCore</emphasis> não são tipos de sistemas especiais. Ao invés disso, eles são instâncias simples de outros objetos <emphasis>TxCore</emphasis> (a classe <classname>Lock</classname> que é também derivada do <classname>StateManager</classname>. Sendo assim, os bloqueios podem ser persistentes caso solicitado e podem também ser nomeados de maneira simples). Adicionado a isto, o <classname>LockManager</classname> não possui conhecimento de semânticas da política atual pelas solicitações de bloqueio que são concedidas. Tal informação é mantida pelas instâncias de classe <classname>Lock</"
+"classname> atual que fornece operações (a operação <literal>conflictsWith</literal>) pelas quais o <classname>LockManager</"
+"classname> pode determinar se dois bloqueios se conflitam ou não. Esta separação é importante uma vez que isto permite que o programador derive novos tipos de bloqueio, a partir da classe <classname>Lock</classname> básica e fornecendo definições apropriadas dos níveis de aumento das operações de conflito, que possam ser possível com a concorrência. "
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"A classe <classname>Lock</classname> fornece uma operação <command>modifiesObject</"
+"command>, da qual o <classname>LockManager</classname> usa para determinar se a concessão desta solicitação de bloqueio requer uma chamada de modificação. Esta operação é fornecida para que os modos de bloqueamento, diferentes de simplesmente ler e escrever, possam ser suportados. A classe de <classname>Lock</classname> fornecida suporta a política de gravação única/leitura múltipla tradicional. "
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "Construção e destruição do objeto"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "Lembre-se que os objetos <emphasis>TxCore</emphasis> podem ser recuperáveis, recuperáveis e persistentes, ou nenhuma destas opções. Além disso, cada objeto possui um nome interno único. Estes atributos podem ser apenas determinados quando o objeto for construído. Desta forma, o <classname>LockManager</classname> fornece dois construtores protegidos para o uso pelas classes derivadas, sendo que cada um deles cumpre um propósito distinto:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "Este construtor permite a criação de novos objetos, quer dizer, não há estado prévio assumido para existir."
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 "Conforme visto anteriormente, este construtor permite que a criação de novos objetos, dos quais são presumidos a não possuir um estado prévio. O parâmetro <literal>ObjectType</literal> determina se é que um objeto é recuperável (indicado pelo <literal>RECOVERABLE</literal>), recuperável e persistente (indicado pelo <literal>ANDPERSISTENT</literal>) ou nenhum dos dois (<literal>NEITHER</literal>). Caso um objeto seja marcado como persistente, o estado do objeto será armazenado em um dos armazenamentos do objeto. O parâmetro compartilhado apenas possui significado se for <literal>RECOVERABLE</literal>. Caso o <literal>attr</literal> não for nulo e o modelo do objeto for <literal>SINGLE</literal> (comportamento padrão), o estado recuperável do objeto será mantido com o próprio objeto (por exemplo: ele não possui representação externa). Do contrário, um armazenamento do objeto (volátil) em memória é usado para armazenar o estado do objeto entre a!
 ções atômicas."
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Os construtores para objetos de persistência nova devem usar ações atômicas entre os mesmos. Isto garantirá que o estado do objeto é automaticamente gravado ao armazenamento do objeto, tanto quando a ação no construtor confirmar ou se uma ação incluída existir, quando a ação de nível superior apropriada for confirmada. Outros exemplos neste tópico irão ilustrar este ponto mais a fundo. "
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "Este construtor permite o acesso a um objeto persistente existente, do qual o nome é dado pelo parâmetro <literal>objUid</literal>. Os objetos construídos usando esta operação terão normalmente seus estados prévios carregados (identificados pelo <literal>objUid</literal>), a partir de um armazenamento automatizado pelo sistema."
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "Conforme visto anteriormente, este construtor permite o acesso a um objeto de persistência existente, em que o nome interno é dado pelo parâmetro <literal>objUid</literal>. Os objetos construídos usando esta operação irão normalmente possuir seus estados prévios carregados (identificados pelo <literal>objUid</literal>), a partir de um armazenamento do objeto automatizado pelo sistema. Caso o parâmetro attr não seja nulo, e o modelo do objeto for <literal>SINGLE</literal> (o comportamento padrão), então o objeto não será reativado no início de cada transação de nível superior."
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "O destruidor de uma classe de programador definida deve invocar o término da invocação terminada para informar o mecanismo gerenciador de estado que o objeto está prestes a ser destruído, do contrário resultados imprevisíveis poderão ocorrer. "
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"Uma vez que o <classname>LockManager</classname> é herdado a partir do <classname>StateManager</classname>, ele passará qualquer instância à classe <classname>StateManager</"
+"classname>. Assim como, é possível configurar o modelo do objeto <classname>StateManager</classname> como descrito anteriormente."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,698 @@
+# translation of Chapter_03.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 14:14+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "Questões Gerais de Transação"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Questões avançadas de transações com TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "As ações atômicas (transações) podem ser usadas por ambos programadores de aplicativo e desenvolvedores de classe. Assim como, as operações completas (ou partes das operações) podem ser atômicas, conforme solicitado pelas semânticas de uma operação particular. Este capítulo descreverá algumas das questões mais fúteis envolvidas usando transações em geral e o <emphasis>TxCore</emphasis> em particular."
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "Transações de checagem"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"Num aplicativo multi-segmentado, os segmentos múltiplos podem ser associados com uma transação durante o próprio ciclo de vida, por exemplo: o compartilhamento do segmento do contexto. Além disso, é possível que um segmento encerre uma transação, enquanto outros segmentos estiverem ativos com a mesma. Num ambiente distribuído, pode ser difícil garantir que todos os segmentos tenham encerrado com uma transação, no momento em que ela for encerrada. Por padrão, o <emphasis>TxCore</emphasis> emitirá um aviso caso um segmento tentar encerrar uma transação enquanto outras transações estiverem ainda ativadas com isto. No entanto, isto permitirá que o encerramento da transação continue. Outras soluções a este problema são possíveis, por exemplo: o bloqueamento do segmento que está encerrando a transação até que outros segmentos tenham se dissociado do contexto de transação. Portanto, o <emphasis>TxCore</emphasis> fornece a classe <classname>com.arju!
 na.ats.arjuna."
+"coordinator.CheckedAction</classname> que permite que a política de finalização do segmento/transação seja substituída. Cada transação possui uma instância de classe associada com isto, e os programadores do aplicativo podem fornecer as próprias implementações por cada transação."
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Quando um segmento tentar encerrar a transação e houver segmentos ativos com o mesmo, o sistema invocará o método de checagem no objeto <classname>CheckedAction</classname> de transação. Os parâmetros para o método de checagem são os seguintes: "
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Indica se é que a transação está no processo de confirmação ou reversão."
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "O identificador de transação."
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "Indica uma lista de todos os segmentos atuais marcados como ativos nesta transação."
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "Quando a checagem retornar, o término da transação continuará. Certamente, o estado da transação neste ponto pode ser diferente daquele quando a checagem foi chamada. Por exemplo: a transação poderá, subseqüentemente, ter sido confirmada."
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "Estatísticas obtidas"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+"Por padrão, o JBossTS não mantém qualquer informação do histórico sobre as transações. No entanto, pela configuração a variável da propriedade <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> está para YES. O serviço de transação manterá informações a respeito do número de transações criadas e seus resultados. Esta informação pode ser obtida durante a execução de uma aplicativo transacional, através da classe <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Last resource commit optimisation"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+"Em alguns casos pode ser necessário inscrever participantes que não estejam cientes da transação de confirmação bifásica. Caso haja apenas um único recurso, então não há necessidade para a confirmação bifásica. No entanto, e se houver recursos múltiplos na transação? Neste caso, o Last "
+"Resource Commit optimization - LRCO (Otimização de Confirmação do Último Recurso) entrará em função. É possível que um único recurso que esteja ciente da monofase (por exemplo; poderá apenas efetuar a confirmação ou reversão sem nenhuma preparação), se inscreva em uma transação com recursos cientes de confirmação bifásica. O coordenador trata os recursos cientes da monofase de maneira diferenciada, da qual executa a fase de preparação em todos os demais recursos primeiramente. E, caso isto então pretenda confirmar a transação, ele passará o controle ao recurso ciente da monofase. Se isto for confirmado, então o coordenador fará a decisão de confirmação e tentativa de confirmação em outros recursos também. "
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+"Para que se possa utilizar o LRCO, seu participante deve implementar a interface <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> e registrar-se na transação através do <command>BasicAction</"
+"command>.add operation. Uma vez que esta operação espera por instâncias do <classname>AbstractRecord</classname>, você deve criar uma instância <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> e ceder seu participante como parâmetro construtor, conforme apresentado abaixo:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Transações aninhadas"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr "Não existem construções especiais para aninhamento das transações: caso uma ação seja iniciada enquanto outra ação é rodada, então esta será automaticamente aninhada. Isto permite que uma estrutura modular para aplicativos, onde objetos podem ser implementados usando ações atômicas com suas próprias operações. Tudo isto, sem que o programador do aplicativo tenha que preocupar-se com os aplicativos que os usam. Por exemplo: se os os aplicativos usarem ou não as ações atômicas também. Desta forma, em algumas ações de aplicativos elas poderão ser de nível superior, enquanto que em outras elas podem ser aninhadas. Os objetos gravados desta maneira podem então ser compartilhados entre programadores de aplicativos e o <emphasis>TxCore</emphasis> garantirá suas consistências."
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "Caso uma ação aninhada seja abortada, então todos os seus trabalhados serão desfeitos ainda que os meios de bloqueamento bifásico estritos, obtidos por qualquer bloqueio, sejam retidos até a confirmação ou aborto da ação de nível superior. Caso uma ação aninhada seja confirmada, então o trabalho que a mesma tenha desempenhado será apenas confirmado pelo sistema se a ação de nível superior for confirmada. E, caso a ação de nível superior seja abortada, então todo o trabalho será desfeito. "
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "A confirmação ou aborto de uma ação aninhada não atinge diretamente o resultado de uma ação com que ela está aninhada. Isto é um aplicativo dependente e permite um programador estruturar ações atômicas para conter falhas, trabalho desfeito, etc."
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "Confirmação assíncrona de uma transação"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "Por padrão, o JBossTS executa o protocolo de confirmação de uma transação de nível superior numa maneira síncrona. Por exemplo; será dito a todos recursos registrados para preparar em ordem do segmento único, e então será pedido para que eles efetuem a confirmação ou reversão. Isto possui diversas desvantagens: "
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "No caso de muitos recursos registrados, a operação de preparação pode logicamente ser invocada em paralelo com outro recurso. A desvantagem é que se um recurso “adiantado” na lista de recurso registrado força uma reversão durante o preparo, possivelmente muitas operações de preparo serão feitas sem necessidade."
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "No caso em que uma reportagem heurística não é solicitada pelo aplicativo, a segunda fase do protocolo de confirmação pode ser feito de maneira assíncrona, uma vez que seu sucesso ou falha não tenham importância."
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"Portanto, o <emphasis>JBossTS</emphasis> fornece opções de execução para ativar possíveis otimizações de segmentação. Pela configuração, a variável do ambiente <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> está para <literal>YES</literal>, durante a fase de preparo que um segmento separado criará para cada participante na transação. Se configurarmos <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> para <literal>YES</literal>, um segmento separado será criado para complementar a segunda fase da transação caso o conhecimento sobre os resultados heurísticos não forem solicitados."
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "Transações de nível superior independente"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+"Em adição ao nível superior normal e ações atômicas aninhadas, o <emphasis>TxCore</"
+"emphasis> também suporta as ações de nível superior independentes, que podem ser usadas para realizar a serialização estrita numa maneira controlada. Uma ação de nível superior independente pode ser executada de qualquer lugar com outra ação atômica e comportamento exatamente igual a uma ação de nível superior normal. Os próprios resultados são construídos como permanentes uma vez que ela confirmar e não serão desfeitos caso qualquer uma das ações, das quais eram originalmente aninhadas, abortarem. "
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Ação de Nível Top Independente "
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "Apresenta um típico aninhamento de ações atômicas, onde a ação B é aninhada com a ação A. Embora a ação atômica C seja logicamente aninhada com a ação B (isto possuia sua própria operação Iniciar invocada enquanto B era ativado), sendo que isto é uma ação de nível superior independente, ela será confirmada ou abortada independentemente de outras ações com a mesma estrutura. Devido a esta natureza de ações de nível superior independentes, elas devem ser usadas com cuidado e apenas em situações onde seus usos podem ser examinados com cautela."
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "As ações de nível superior podem ser usadas num aplicativo apenas declarando e usando instâncias da classe <classname>TopLevelTransaction</classname>. Elas são usadas exatamente da mesma maneira que as demais transações."
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "Transações com save_state e restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"Deve-se possuir muita cautela na gravação do <command>save_state</command> e das operações "
+"<command>restore_state</command>, garantindo que ações atômicas não sejam iniciadas (tanto explicitamente na operação ou implicitamente por meio do uso de algumas outras operações). Esta restrição aparece devido ao fato que o <emphasis>TxCore</emphasis> poderá invocar o <command>restore_state</command> como parte do próprio processo de confirmação, resultando na tentativa de executar uma ação atômica durante a confirmação ou aborto da fase de outra ação. Isto poderá violar as propriedades atômicas da ação que estão sendo confirmadas (abortadas). Desta maneira, este procedimento é desencorajado."
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "Vamos considerar o exemplo Array fornecido previamente. As operações set e get podem ser implementadas conforme apresentado abaixo."
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Isto é uma simplificação do código, ignorando as condições de erro e exceções."
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Objetos coletores de lixo"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "Os objetos Java são deletados quando o coletor de lixo determinar que eles não são mais requeridos. A deletação de um objeto que está sob o controle de uma transação deve ser abordada com cuidado. Caso o objeto esteja sendo manipulado pela transação, o seu destino é conseqüentemente determinado pela transação. Portanto, independente das referências de um objeto transacional mantido por um aplicativo, o <emphasis>TxCore</emphasis> irá sempre reter suas próprias referências para garantir que o objeto não é lixo coletado, até que qualquer transação tenha sido terminada."
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "Transações de intervalo"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "Pelo padrão, as transações duram até que elas sejam terminadas pelo aplicativo que as criam ou se uma falha ocorrer. No entanto, é possível configurar um intervalo (em segundos) por transação, de forma que se a transação não for terminada antes que o intervalo acabe, ela será automaticamente revertida."
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+"No <emphasis>TxCore</emphasis>, o valor do intervalo é fornecido como uma parâmetro para o construtor <classname>AtomicAction</classname>. Caso o valor <literal>AtomicAction.NO_TIMEOUT</literal> seja fornecido (padrão), a transação não será automaticamente interrompida. Qualquer outro valor positivo é assumido ao intervalo da transação (em segundos). Um valor zero é adquirido para ser um intervalo padrão global, do qual pode ser fornecido pela propriedade <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>, a não ser que o valor padrão modificado seja 60 segundos."
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"Quando uma transação de nível superior for criada com um intervalo diferente de zero, ela estará sujeita a reversão, caso a mesma não seja completada com o número específico de segundos. O <emphasis>JBossTS</emphasis> usa um segmento reaper separado, do qual monitora todas as transações criadas localmente e as força a executar a reversão, caso o intervalo das mesmas acabe. Para prevenir que este segmento consuma tempo do aplicativo, ele apenas roda periodicamente. O padrão de período de checagem é de 120000 milésimos de segundos, mas ele pode ser substituído pela configuração da variável de propriedade <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> para outro valor válido em milhões de segundo. Alternativamente, caso um <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> seja configurado para <literal>DYNAMIC</literal>, a transação reaper irá atuar a qualquer instante em que a transação sofrer um intervalo. Isto possui a vantagem de finalizar as transações com antecedência, mas, por outro lado, poderá sofrer com a re-programação contínua do segmento reaper."
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"Caso um valor 0 seja especificado para o intervalo da transação de nível superior (ou não haja intervalo especificado), então o <emphasis>JBossTS</emphasis> não irá impor qualquer intervalo na transação, por exemplo: isto permitirá a rodagem indeterminadamente. O padrão de intervalo pode ser substituído pela configuração da variável da propriedade quando usando <emphasis>ArjunaCore</emphasis> ou <emphasis>ArjunaJTS</"
+"emphasis>, ou <literal>com.arjuna.ats.jts.defaultTimeout</literal> se utilizando <emphasis>ArjunaJTS</emphasis> para determinar o valor de intervalo em segundos."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,328 @@
+# translation of Chapter_04.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 14:46+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "Dicas e Conselhos"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "Geral"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Usando transações em construtores"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Os exemplos demonstrados neste manual têm utilizado transações na implementação de construtores para novos objetos de persistência. Isto é discutido uma vez que garante a propagação correta deste estado do objeto para o armazenamento do objeto. Lembre-se de que o estado de um objeto persistente modificado é apenas gravado no armazenamento do objeto quando a transação de nível superior for confirmada. Desta forma, se uma transação do construtor for de nível superior e confirmada, então o mais novo objeto criado é gravado no armazenamento e será imediatamente disponível. No entanto, se a transação do construtor for confirmada, mas estiver aninhada devido a algumas outras transações iniciadas antecipadamente a rodagem da criação do objeto, então o estado será gravado apenas se todas as transações parent estiverem confirmadas."
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "Por outro lado, caso o construtor não use transações, o aparecimento de inconsistências no sistema será possível. Por exemplo, caso não hajam transações ativadas quando o objeto for criado, então o próprio estado não será salvo ao armazenamento até a próxima vez em que o objeto seja modificado, sob o controle de algumas transações. "
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "Considere a simples amostra abaixo:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"Neste caso, os dois objetos são criados fora do controle de ação de nível superior A. O <literal>obj1</literal> é um novo objeto enquanto que o <literal>obj2</literal> é um objeto antigo existente. Quando a operação relembrar do <literal>obj2</"
+"literal> for invocada, o objeto será ativado e Uid do <literal>obj1</literal> relembrado. Uma vez que esta ação for confirmada o estado persistente do <literal>obj2</literal> poderá conter agora o Uid do objeto. No entanto, o estado do <literal>obj1</literal> por si próprio, não foi salvo uma vez que ele não foi manipulado sob o controle de qualquer ação. Na realidade, isto nunca será salvo a não ser que ele seja modificado sob o controle de algumas ações mais tarde no aplicativo. Porém, se o construtor tenha usado uma ação atômica, o estado do <literal>obj1</literal> poderia ter sido salvo automaticamente no período em que isto foi construído, e esta consistência jamais apareceria."
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "Um pouco mais a respeito do save_state e restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+"O <emphasis>TxCore</emphasis> poderá invocar a operação <command>save_state</"
+"command> do usuário definido de um objeto, a qualquer período durante o ciclo de vida de um objeto incluído durante a construção da execução do corpo de um construtor do objeto (particularmente se isto usa as ações atômicas). Isto é importante e portanto, todas aquelas variáveis salvas save_state são corretamente inicializadas."
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"Deve-se ter atenção quando gravando as operações <command>save_state</"
+"command> e <command>restore_state</command>, garantindo que não há transações inicializadas (tanto explicitamente na operação ou implicitamente através do uso de alguma outra operação). Esta restrição surge devido ao fato de que o <emphasis>TxCore</emphasis> poderá invocar o <command>restore_state</"
+"command> como parte do próprio processo de confirmação resultante, na tentativa de executar uma transação atômica durante as fases confirmação ou aborto de outra transação. Isto poderá violar as propriedades atômicas da transação sendo confirmada (abortada). Por isto, ela não é recomendada."
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"Com a finalidade de suportar a recuperação de travamento para objetos de persistência, é necessário que todos métodos <literal>save_state</literal> e <literal>restore_state</literal> de objetos do usuário chamem o <command>super.save_state</command> e "
+"<command>super.restore_state</command>."
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Objetos de Empacotamento "
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"Todos os tipos básicos de Java (int, long, etc.) podem ser salvos e restaurados a partir de uma instância <classname>Input/OutputObjectState</classname>, usando as rotinas de empacotamento (e desempacotamento) fornecidas pelo <classname>Input/OutputObjectState</"
+"classname>. No entanto, os objetos de empacotamento e desempacotamento poderiam ser manuseados de maneira diferente. O motivo disto é que os objetos de empacotamento trazem problemas adicionais de alliasing. Isto quer dizer, duas diferentes referências de objeto poderão estar em um ponto de fato atual no mesmo ítem. Por exemplo:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "Ambos os pontos s1 e s2 de mesma seqüência e uma implementação naive do <command>save_state</command> poderão acabar copiando dobrado a seqüência. Do ponto de vista do <command>save_state</command>, isto é simplesmente ineficiente. No entanto, isto faz com que o <command>restore_state</command> seja incorreto uma vez que ele poderia desempacotar as duas seqüências em áreas diferentes de memória, destruindo a informação aliasing original. A versão atual do TxCore irá empacotar e desempacotar as referências de objeto separadamente."
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "Uso direto do StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 "Os exemplos apresentados neste manual possuem sempre classes de usuários derivadas do <classname>LockManager</classname>. As razões para isto são duplicadas. Primeiramente, e a mais importante, as restrições serializadas das ações atômicas solicitam isto, e o motivo pelo qual isto reduz a necessidade de intervenção por parte do programador. No entanto, tudo isto apenas se o acesso aos mecanismos de recuperação e persistência do <emphasis>TxCore</emphasis> for solicitado e a derivação direta de uma classe do usuário a partir do <classname>StateManager</classname> for possível."
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+"As classes derivadas diretamente do <classname>StateManager</classname> devem fazer uso dos próprios mecanismos de gerenciamento de estado explícito (estas interações são normalmente responsabilizadas pelo <classname>LockManager</classname>). A partir do ponto de vista do programador, isto soma na realização do uso apropriado das operações ativas, desativadas e modificadas, uma vez que os construtores do <classname>StateManager</"
+"classname> são efetivamente idênticos aos do <classname>LockManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr "O <command>Activate</command> carrega um objeto do armazenamento do objeto. O Uid do objeto deve já estar configurado através do construtor e o objeto deve existir no armazenamento. Caso o objeto seja lido com sucesso, o <command>restore_state</command> será chamado para construir o objeto de memória. O <command>Activate</command> é idempotente, e, desta forma, uma vez que o objeto tenha sido ativado as próximas chamadas serão ignoradas. O parâmetro representa o nome raiz do armazenamento do objeto para buscar pelo objeto. Um valor nulo significa que você deve usar o armazenamento padrão. "
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "A inversão do activate. As primeiras chamadas <command>save_state</command> para a construção da imagem compactada do objeto que é então salvo no armazenamento do objeto. Os objetos são apenas salvos caso eles tenham sido modificados, uma vez que eles foram ativados. O parâmetro representa o nome raiz do armazenamento do objeto no objeto que deverá ser salvo. O valor nulo significa que você deve usar o armazenamento padrão."
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>Deve</emphasis> ser chamado antecipadamente à modificação do objeto em memória. Caso isto não seja chamado, o objeto não será salvo no armazenamento do objeto pela desativação."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,943 @@
+# translation of Chapter_05.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:47+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "Ferramentas"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "Este capítulo explica como iniciar e usar as ferramentas do framework e quais delas estão disponíveis."
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "Inicializando as ferramentas de Serviço de Transação"
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "A maneira de inicializar as ferramentas do serviço de transação difere na operação do sistema que está sendo utilizado:"
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr "Clique duas vezes no link ‘Iniciar Ferramentas’ no grupo do Programa de Serviço de Transação JBoss do menu inicial."
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Inicie uma janela de comando e digite:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr "Uma vez completado isto, as ferramentas da janela irão aparecer. Esta é a sala de espaço para todas as ferramentas lançadas com o <emphasis>Serviço de Transação JBoss</emphasis>. Você perceberá uma barra de menu na parte superior da janela. Esta barra de ferramentas possui quatro ítens:"
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "O Menu de <menuchoice><guimenu>File</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Abra o Navegador JMX"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr "Isto exibe a janela de navegador JMX (consulte ***Using the JMX Browser para maiores informações em como se usar o navegador JMX)."
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Abra o Navegador de Armazenamento do Objeto"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+"Isto exibirá a janela do navegador do Armazenamento do Objeto JBossTS (consulte ***Using the "
+"Object Store Browser para maiores informações em como usar o navegador do Armazenamento do Objeto)."
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Configurações"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "Esta opção abre o diálogo de configurações do qual permite você configurar as diferentes ferramentas disponíveis."
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr "Saída"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "Isto encerra a janela de ferramentas e sai do aplicativo. As alterações que não foram salvas ou confirmadas serão perdidas."
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "O Menu de <menuchoice><guimenu>Performance</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Abrir"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr "Isto abre a janela de desempenho - para maiores informações sobre a ferramenta de desempenho consulte: <xref linkend=\"Performance_Tool\"/>."
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr "Fechar Tudo"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"Isto fecha todas as janelas de desempenho abertas no momento - para maiores informações na ferramenta de desempenho consulte: <xref "
+"linkend=\"Performance_Tool\"/>."
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "O Menu da <menuchoice><guimenu>Window</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Janelas "
+
+#. 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 "Isto coordena as janelas numa linha diagonal com a finalidade de você encontrar uma janela específica."
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Para cada janela atualmente visível, uma opção extra de menu estará disponível. Se selecionarmos a opção de menu, veremos uma janela associada à parte da frente da área de trabalho. "
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "O Menu de <menuchoice><guimenu>Help</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Isto exibe a janela about que contém informações do produto."
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Usando a Ferramenta de Desempenho"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 "A ferramenta de desempenho pode ser usada para exibir informações de desempenho sobre o serviço de transação. Esta informação é coletada usando o bean JMX de Desempenho significando que o serviço de transação precisa ser integrado a um Servidor do Aplicativo, para ceder qualquer informação de desempenho."
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"A informação de desempenho é exibida através do gráfico de multi-seqüências. Para visualização deste gráfico apenas abra uma janela de desempenho selecionando <menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "A janela na tela contém um gráfico multi-seqüenciado que pode exibir a seguinte informação:"
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr "Número de transações."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Número de Transações confirmadas."
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Número de transações abortadas."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Número de transações aninhadas."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Número de heurísticos crescidos."
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "Para ligar e desligar estas seqüências, selecione a opção de menu a partir do menu de seqüências."
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 "Quando as seqüências forem ligadas, as mesmas aparecerão na legenda na parte inferior do gráfico. A cor do texto próximo ao nome das seqüências (por exemplo, Transações Criadas) é a cor da linha representante daquele dado."
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "O dado apresentado é grifado com referência ao tempo. O Y-axis representa o número de transações e o X-axis representa o tempo."
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 "A qualquer instante a amostra do dado pode ser interrompida e restaurada usando o menu <menuchoice><guimenu>Sampling</guimenu></menuchoice>, e o dado atualmente visível no gráfico pode ser salvo ao arquivo de Valores Separados por Vírgulas - Comma Separate Values (CSV), para importação de dados em um aplicativo de spreadsheet usando a opção de menu <menuchoice><guimenu>Save to .csv</guimenu></menuchoice> a partir do menu <menuchoice><guimenu>Data</guimenu></menuchoice>."
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Usando o Navegador JMX"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"Para abrir a janela do navegador JMX, clique no menu <menuchoice><guimenu>File</"
+"guimenu></menuchoice> e então clique na opção <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>. A janela do navegador JMX será então exibida."
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 "A janela é feita de duas seções principais: o painel de detalhes e o painel MBean. O painel MBean exibe os MBeans expostos pelo servidor MBean. Eles são agrupados pelo nome domínio. O painel de detalhes exibe informação sobre o atual MBean selecionado. Para selecionar o MBean apenas clique no botão esquerdo do mouse e ele será marcado. Segue abaixo, a informação exibida no painel de detalhes:"
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "O número total de MBeans registrados neste servidor."
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "O número de construtores expostos por este MBean."
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "O número de atributos exposto pelo MBean."
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "O número de operações expostas por este MBean."
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "O número de notificações expostas por este MBean."
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "Uma descrição prévia do MBean."
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 "Há também um link <menuchoice><guimenu>View</guimenu></menuchoice>, que quando acionado, exibe atributos e operações expostas pelo MBean. A partir disto, você pode visualizar atributos de leitura, alterar atributos de gravação e invocar operações."
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "Usando Atributos e Operações"
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 "Quando clicarmos no link <menuchoice><guimenu>View</guimenu></menuchoice>, os Atributos JMX de Visualização e janela de operações serão exibidos. A partir disto, você pode também alterar os atributos de gravação. Caso um atributo seja apenas de leitura, ele não estará apto a alterar o valor dos atributos. Para alterar um valor do atributo, apenas clique duas vezes no valor atual e entre o novo valor. Caso o botão <guibutton>...</guibutton> seja ativado, então você pode clicá-lo para visualizar um método de edição mais adequado. Vamos imaginar que o tipo do atributo é um nome do objeto JMX, então se clicarmos neste botão serão exibidos os atributos JMX e as operações para aquele objeto. "
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "A qualquer instante você pode clicar no botão <guibutton>Refresh</guibutton> para atualizar os valores do atributo. Caso uma exceção ocorra enquanto restaurando o valor de um atributo, a exceção será exibida no lugar do valor dos atributos."
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 "Você pode também invocar as operações por um MBean. A lista de operações exibidas por um MBean é exibida abaixo da lista de atributos. Para invocar uma simples operação, selecione-a a partir da lista e clique no botão <guibutton>Invoke</guibutton>. Caso a operação solicite parâmetros, uma janela futura será exibida. A partir desta janela você deverá especificar valores para cada um dos parâmetros solicitados. Você especifica os valores do parâmetro da mesma maneira que você especifica os valores do atributo JMX. Uma vez que você tenha especificado o valor para cada um dos parâmetros, clique no botão <guibutton>Invoke</guibutton> para desempenhar a invocação."
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Assim que a invocação do método tenha sido completada, o seu valor de retorno será exibido."
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "Usando o navegador do Armazenamento do Objeto"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 "Para abrir a janela do navegador de Armazenamento do Objeto, clique no menu <menuchoice><guimenu>File</guimenu></menuchoice> e então clique na opção <menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice>. A janela do navegador de Armazenamento do Objeto será então exibida."
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "A janela do navegador de armazenamento do objeto é dividida em quatro seções:"
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 "Raízes de Armazenamento do Objeto - isto é uma destruição das raízes de armazenamento do objeto disponível. Selecionando uma opção a partir da lista irá re-popular a visualização de hierarquia de visualização com os conteúdos da raiz selecionada."
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "Hierarquia de Armazenamento do Objeto- isto é uma árvore que apresenta a hierarquia de armazenamento do objeto. A seleção de um nó a partir desta árvore irá exibir os objetos armazenados naquela localização."
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objetos - esta é a lista de ícons que representam os objetos armazenados na localização selecionada."
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 "Detalhes do Objeto - isto apresenta informação a respeito do atual objeto selecionado (apenas se o tipo de objeto é conhecido pelo repositório de visualização do estado. Consulte a Gravação de um OSV para maiores informações de como se gravar os visualizadores de um estado de objeto)."
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "Visualizadores de Estado do Objeto - Object State Viewers (OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 "Quando um objeto for selecionado no painel de objetos da janela principal, a Visualização de Estado de Objeto (ou OSV) registrada para aquele tipo de objeto será invocada. O trabalho do OSV é manter informações disponíveis através do usuário de interface ao usuário, com a finalidade de apresentar informações a respeito do objeto selecionado. O OSV é distribuído com ferramentas padrões para Ações Atômicas. Ele exibe informações referentes as Gravações Abstratas em diversas listas (por exemplo: heurística, de falha, de leitura apenas, etc). É também possível gravar o seu próprio OSVs, do qual pode ser usado para exibir informações referentes aos tipos de objetos que você estiver definindo. Este assunto será discutido adiante."
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "Gravando um OSV"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "A gravação de um plugin OSV permite que você estenda as capacidades do navegador de Armazenamento do Objeto para apresentar o estado das gravações abstratas do usuário definido. Um plug-in OSV é simplesmente uma classe que implementa a interface:"
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "Isto deve ser empacotado numa JAR com o diretório plugins. Este exemplo apresenta como criar um plugin OSV para uma sub-classe de gravação abstrata que parece-se com:"
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+"Quando esta gravação abstrata é visualizada no navegador de armazenamento do objeto, será interessante ver o valor atual. Isto é fácil de se fazer uma vez que podemos ler o estado dentro de uma instância de nossa gravação abstrata e chamar o <methodname>getValue()</"
+"methodname>. Segue abaixo, o código de recurso plug-in de armazenamento do objeto:"
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 "O método <methodname>uidNodeExpanded</methodname> é invocado quando uma UID (Identificação Única) representante, de tipo dado, for expandida na árvore hierárquica de armazenamento do objeto. Isto não é solicitado por este plugin, pois uma gravação abstrata não é visível no armazenamento de objeto. Isto é apenas visível através de uma das listas em uma ação atômica. O método <methodname>entrySelected</methodname> é invocado quando uma entrada for selecionada, a partir de uma visualização do objeto que representa um objeto de tipo dado. Em ambos os métodos o StatePanel é usado para exibir informação referente ao estado do objeto. O painel do estado possui os seguintes métodos que auxiliam na exibição desta informação:"
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>: O método pode ser usado para apresentar informações gerais."
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 "<methodname>setData(String name, String value)</methodname>: Este método é usado para adicionar informações na tabela que é exibida pela ferramenta do navegador de armazenamento do objeto."
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: Este método é usado para ativar os detalhes abaixo. A interface listener permite que um plug-in saiba quando o botão for pressionado. Fica a escolha do desenvolvedor do plug-in decidir como exibir esta futura informação."
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 "Neste exemplo, lemos o estado a partir do armazenamento do objeto e usamos o valor retornado pelo getValue(), para adicionar uma entrada dentro da tabela de painel do estado. O método getType() retorna o tipo em que este plug-in é, com a finalidade de ser registrado em referência a isto."
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"Para adicionar este plug-in ao navegador do armazenamento do objeto é necessário empacotá-lo em um arquivo JAR (Java Archive), com o nome que é pré-fixado com 'osbv-'. O arquivo JAR deve conter certas informações com um arquivo manifesto para que o navegador de armazenamento de objeto saiba quais classes são plug-ins. Tudo isto pode ser desempenhado usando um script <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink>, como segue abaixo:"
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"Uma vez que o JAR tenha sido criado com a informação correta no arquivo de manifesto, isto apenas precisará ser substituído no diretório <emphasis>bin/tools/plugins</"
+"emphasis>."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,870 @@
+# translation of Chapter_06.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 16:21+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "Construção de objetos Transacionais para aplicativos Java"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "Construção de Aplicativo"
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Existem duas fases distintas para o desenvolvimento de um aplicativo TXCore:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Desenvolvimento de novas classes com certas características (por exemplo: Persistência, Recuperação, Concorrência Controlada)."
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Desenvolvimento de aplicativo(s) que fazem uso de novas classes dos objetos."
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr "Embora estas fases possam ser desempenhadas em paralelo e por uma única pessoa, podemos nos referir ao primeiro passo como o trabalho de um desenvolvedor de classe e o segundo como o trabalho de desenvolvedor de aplicativos. O desenvolvedor de classe irá preocupar-se com a definição apropriada <code>save_state</code> e operações <code>restore_state</code> para esta classe, configurando bloqueios apropriados nas operações e invocando os construtores de classe TxCore apropriado. O desenvolvedor dos aplicativos irão preocupar-se mais com a definição da estrutura geral do aplicativo, particularmente a respeito do uso de ações atômicas."
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "Este capítulo ilustra os pontos destacados em seções anteriores pela estrutura de tópico de um aplicativo simples: neste caso uma classe de Fila FIFO simples será desenvolvida para integração de valores. A implementação da Fila estará com uma estrutura de lista com duplo links e será implementada como um objeto único. Provavelmente, usaremos este exemplo no resto deste manual, para ajudar a ilustrar os diversos mecanismos fornecidos pelo TxCore. Enquanto isto é um exemplo de aplicativo surreal, isto ativa todas as modificações a serem descritas com a solicitação em profundo conhecimento do código do aplicativo."
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "Assumiremos que o aplicativo não é distribuído no resto deste capítulo. Caso este não seja o caso, então a informação de contexto deve ser propagada tanto implicitamente como explicitamente."
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "Descrição da Fila"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "Esta fila é uma fila FIFO tradicional, onde elementos são adicionados pela frente e removidos por trás. As operações fornecidas pelas classes permitem que valores sejam colocados na fila (enfileirados) e removidos dela (desinfileirados). Além disso, é também possível mudar e inspecionar os valores de elementos na fila. Neste exemplo de implementação, um array é usado para representar a fila. O limite dos elementos <code>QUEUE_SIZE</code> tem sido imposto por este exemplo."
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "Segue abaixo, a definição de interface Java desta classe de fila simples:"
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Construtores e De-construtores"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "Assim como declarado na seção anterior, o uso de um objeto persistente existente solicita o uso de um construtor especial, do qual é requerido a obter o UID do objeto de persistência. A implementação de tal construtor é dada abaixo:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "O construtor que cria um objeto de persistência nova parece-se com:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 "O uso de uma ação atômica com o construtor para um novo objeto segue as estruturas de tópicos das linhas de comando anteriores, além de garantir que o estado do objeto seja gravado ao armazenamento do objeto, uma vez que a ação atômica de nível superior apropriada for confirmada (da qual será tanto a ação A ou alguma ação inclusa ativa quando o <code>TransactionalQueue</code> for construído). O uso de ações atômicas num construtor é simples: uma ação deve ser declarada e sua inicialização de operação invocada. A operação deve então definir um bloqueio apropriado no objeto (neste caso um bloqueio <code>WRITE</code> deve ser adquirido), e então o corpo principal do construtor é executado. Caso isto seja realizado com êxito a ação atômica pode ser confirmada, do contrário ela será abortada."
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "O destruidor da classe de fila é apenas solicitado para chamar a operação de término do <methodname>LockManager</methodname>"
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state and type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "As implementações de save_state e restore_state são relativamente simples para este exemplo:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"Devido a classe da Fila ser derivada da classe <classname>LockManager</"
+"classname>, o tipo de operação deve parecer-se com:"
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "Operações enfileiradas/desenfileiradas"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "Caso as operações da classe da fila estiverem para ser codificadas como ações atômicas, então a operação enfileirar poderá ter a estrutura dada abaixo (a operação desenfileirar pode ser estruturada similarmente):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "Segue abaixo a implementação do <methodname>queueSize</methodname>: "
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Operações inspectValue/setValue"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr "Segue abaixo a implementação do <methodname>inspectValue</methodname>. O <methodname>setValue</methodname> é parecido e não é apresentado."
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "O cliente"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "Ao invés de apresentarmos todos os códigos para o cliente, iremos nos concentrar numa porção representativa. Antes de invocar operações no objeto, o cliente deve primeiramente vincular-se a isto. No caso local, isto simplesmente solicita ao cliente a criar uma instância do objeto."
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr "Antes de invocar uma das operações da fila, o cliente inicializa a transação. Segue abaixo, a operação <methodname>queueSize</methodname>:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Comentários"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "Considerando que o objeto da fila é persistente, então o estado do objeto sobreviverá a qualquer falha do nó em que estiver localizado. O estado do objeto que sobreviverá é aquele produzido pelo último nível superior confirmado de ação atômica executada no objeto. Caso a intenção de um aplicativo é executar duas operações enfileiradas atomicamente, por exemplo, então isto poderá ser feito aninhando as operações enfileiradas em outra ação atômica inclusa. Adicionado a isto, as operações concorrentes serão serializadas em tal objeto de persistência, desta forma prevenindo inconsistências no estado do objeto. No entanto, uma vez que os elementos dos objetos da fila não são individualmente controlados, algumas combinações das invocações de operação atual serão executadas em série, assim como elas podem ser executadas ao mesmo tempo. Por exemplo, modificando os estados em dois elementos diferentes na fila. Na próxima seção endereÃ!
 §aremos alguns destes problemas."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,344 @@
+# translation of Chapter_07.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 16:33+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "Opções de Configuração"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Opções"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "A seguinte tabela apresenta os recursos de configuração com valores padrões apresentados em itálico. Maiores detalhes a respeito de cada opção podem ser encontrados nas seções relevantes deste documento. "
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "Opções de Configuração TxCore"
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Nome de Configuração"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Valores Possíveis"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Descrição"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "Ativa a sincronização do armazenamento do objeto que está ligado ou desligado. Use com cautela."
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "Especifica o tipo da implementação do armazenamento do objeto para uso. "
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/any integer value"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Determina o número de diretório de estados do objeto hash para a implementação do armazenamento do objeto HashedStore."
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Especifica o tipo de bloqueio da implementação de armazenamento de bloqueio para uso."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Especifica a localização de armazenamento do bloqueio."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "Qualquer localização em que o aplicativo pode efetuar uma gravação."
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "Especifica a localização de armazenamento do objeto."
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "Especifica o nome da raiz de armazenamento do objeto."
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "A transação de implementação de logon para uso."
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "Liga e desliga a confirmação assíncrona (padrão)."
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "Liga e desliga a preparação assíncrona (padrão)."
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "Nome da Classe JDBCAccess"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "A implementação JDBCAccess de uso nos armazenamentos de objeto de nível do usuário."
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "A implementação JDBCAccess de uso para armazenamentos de objeto de transação."
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "Ativa ou desativa a otimização confirmar de uma fase."
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "Ativa ou desativa a otimização apenas pronta para o aborto de segunda fase."
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "Inicia/Interrompe a coleção de informação da estatística de transação."
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr "Inicia com a ativação ou desativação do sistema de transação. Ativa/desativa através da classe arjuna.ats.arjuna.coordinator.TxControl."
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Número Inteiro"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Intervalo em milésimo de segundos."
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/pt-BR/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,692 @@
+# translation of Appendix_A.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-08 12:46+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Object store 的实现"
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "Object Store"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "在本附录里,我们将查看不同的 TxCore object store 实现并给出如何创建其他实现并插入应用程序的准则。"
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"本版本的 JBossTS 包括几个不同的基本 object store 的实现。每个服务于特定的目的且通常为之进行了优化。所有的实现都源自 <interface>ObjectStore</interface> 接口。这定义了 JBossTS 使用的 object store  实现所必须提供的最小操作。缺省的 object store 实现可以在运行时通过设置 <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> 属性变量为下列类型之一来覆盖。"
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+"JBossTS 程序员除了创建 Object store 实现外(即使这也不是必需的,因为如果使用缺省的 Object Store,JBossTS 将自动创建)通常不需要和它们进行直接交互。所有的 <classname>ObjectState</classname> 类的实例用类型(通过对象的 type() 操作)和 UID 来命名。对于原子动作而言,Object Store "
+"里的对象状态主要有两种不同的状态:OS_COMMITTED 和 OS_UNCOMMITTED。对象状态以 OS_COMMITTED 开始,但当在原子动作控制之下进行修改时,另外一个对象状态也以 OS_UNCOMMITTED 将被写入。如果这个动作提交了,第二个对象状态将覆盖原始状态并成为 "
+"OS_COMMITTED。如果动作中止,第二个对象状态将简单低被丢弃。本版本里提供的所有实现都通过对象状态的影子版本来处理这些状态变换,然而,任何其他类似的实现也是允许的。在崩溃恢复系统控制下,对象状态也可能隐藏(不可访问)。"
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"通过 <methodname>allTypes</methodname> 和 <methodname>allObjUids</methodname> 操作可以浏览 Store 的内容。<methodname>allTypes</methodname> 返回一个包含 Store 里所有对象的的全部类型名的 <type>InputObjectState</type> 实例。<"
+"methodname>allObjUids</methodname> 则返回一个包含给定类型的对象的所有 UID 且以 <methodname>Uid.nullUid()</methodname> 结束的 <type>InputObjectState</type> 实例。"
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "持久性 Object Store"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "本节简要地描述了每个持久性 Object Store 实现的特点和优化信息。持久性对象的状态映射至主机操作系统支持的文件系统结构。"
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "常见功能"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "除了之前提及的功能,所有的持久性 Object Store 都遵循下面的规则:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "每个对象状态都保存在各自对应的文件里,文件以对象的 <code>Uid</code> 命名。"
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "对象的类型(由 <methodname>type()</methodname> 指定)决定了对象存放的目录。"
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "所有的 Store 都有一个公共的根目录,它在配置 JBossTS 时被指定。这个目录的名称自动附加在任何 Store 专有的根信息里。"
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "所有的 Store 也都有本地化的根目录符号,它自动地附加到对象的类型里来指定最终的目录名称。当 Store 被创建时将指定本地化的根目录名称。本地化的根目录名称缺省是 <code>defaultStore</code>。"
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "Shadowing Store"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+"这是以前发行版本里提供的 Object Store 的原始版本,它由 <classname>ShadowingStore</classname> 类来实施。它很简单但也慢。它使用成对的文件来代表对象(shadow 版本和 committed 版本),每次和  Object Store "
+"交互时文件都被打开、锁定、操作、解锁和关闭。因此相当一部分时间将花费在系统的打开、关闭和重命名文件上面,而这些都是很消耗资源的操作。"
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "如果覆盖这个 object store 实现,它的类型是 <type>ShadowingStore</type>。"
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "非文件级锁"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"既然事务性对象都通过 <methodname>LockManager</methodname> 进行并行控制,和基本的 ShadowingStore 实现一样强制文件级的锁就没有必要了。因此,JBossTS 缺省的 object store 实现,<methodname>ShadowNoFileLockStore</methodname>,依赖于用户级锁。这使它可以提供比 <"
+"methodname>ShadowingStore</methodname> 更好的性能。"
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "如要要覆盖这个 Object Store,它的类型是 <type>ShadowNoFileLockStore</type>。"
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "Hashed Store"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 ""
+"<code>HashedStore</code> 具有和 Shadowing Store 一样的结构,但它也有另外的一个更适合于存储大量相同类型的对象结构。如使用这种 store,对象通过应用 hash 函数到对象的 UID 散布在一系列目录里。缺省将使用 255 个子目录。然而,你可以通过设置环境变量 <code>HASHED_DIRECTORIES</code> 来覆盖它。"
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "如果要覆盖这个 Object Store 信息,它的类型是 <type>HashedStore</type>。"
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"既然事务性对象通过 <methodname>LockManager</methodname> 来控制并行性,和基本的 <methodname>ShadowingStore</methodname> 实现一样强制文件级锁就没有必要了。因此,JBossTS 缺省的 Object Store 实现,<methodname>ShadowNoFileLockStore</methodname>"
+",依赖于用户级锁。这使它可以提供比 <methodname>ShadowingStore</methodname> 更好的性能。"
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 ""
+"<code>HashedStore</code> 具有和 Shadowing Store 一样的结构,但它也有另外的一个更适合于存储大量相同类型的对象结构。如使用这种 store,对象通过应用 hash 函数到对象的 UID 散布在一系列目录里。缺省将使用 255 个子目录。然而,你可以通过设置环境变量 <code>HASHED_DIRECTORIES</code> 来覆盖它。"
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "JDBC store"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+"<methodname>JDBCStore</methodname> 使用 JDBC 数据库来保存持久性对象的状态。如果和Transactional "
+"Objects for Java API 一起使用,它可以支持嵌套的事务。在当前的实现里,所有的 Object Store 都以 Binary Large Objects (BLOBs) 存储在相同的表里。使用 BLOB 会限制对象状态的大小为 64k。如果试图存储超过这个限制的对象状态,系统将报错,状态也不能成功存储。随后事务将被迫回滚。"
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"在使用 JDBC object store 时,应用程序必须提供下面的接口(位于 <code>com.arjuna."
+"ats.arjuna.objectstore</code> 包里)的一个实现:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "对这个接口的实现负责提供 JDBC ObjectStore 用来保存和恢复对象状态的 <emphasis>Connection 实例</emphasis>:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<methodname>getConnection</methodname>:返回要使用的连接。每当需要连接数据库时这个方法将被调用,这个实现应该所需的策略来决定返回什么样的连接。这个方法不会返回相同的 Connection 实例。"
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>:调用这个方法将退回用 getConnection 获取的 Connection 实例。当使用连接出错时,该连接将被退回。"
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>:这个方法可以把其他任何信息传递给该实现。"
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"JDBC object store 将首先请求 <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> 属性里定义的连接的数量,它不会使用超过  <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> 定义的个数的连接。"
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr "所使用的 <interfacename>JDBCAccess</interfacename> 接口的实现应该通过 <property>com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess</property> 属性变量来设置。"
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "如果要覆盖这个 Object Store 实现,其类型是 <type>JDBCStore</type>。"
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"JDBC object store 可以用来管理事务日志。在这种情况下,事务日志实现应该设置为 <property>JDBCActionStore</property> 且 <methodname>JDBCAccess</methodname> 实现必须通过 <property>com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess<"
+"/property> 属性变量提供。此时的缺省表名是 JBossTSTxTable。"
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "对于用户 object store 和事务日志,你都可以使用相同的 JDBCAccess 实现。"
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "Cached Store"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "这种 Object Store 使用 hashed object store,但并不马上把状态读出和写入持久性 Store 里。它在一个易变的内存缓存里维护状态,而且定期或满了后进行冲刷。和这个 Object Store 相关的故障模式和普通的持久性 Object Store 不同,因为故障可能导致缓存里的状态丢失。"
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "要覆盖这种 object store 实现,其类型为 <type>CachedStore</type>。"
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "Store 可以用下面的属性进行配置:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> 设置内部 store 使用的 hash。缺省值是 128。"
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> 是在触发冲刷前缓存的最大容量。缺省值为 10240 字节。"
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> 是在触发冲刷前缓存可包含的最多已删除条目的数量。在缺省情况下,对状态删除的调用将简单地从缓存里把该状态删除,但会保留一个空白的条目(而不是马上删除该条目,这样会影响缓存的性能)。当冲刷被触发时,这些条目才会从缓存里删除。其缺省值是 hash 值的两倍。"
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> 是在冲刷前缓存里可允许保留的条目的最大个数。缺省值为 100。"
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> 设置缓存冲刷的时间间隔(以毫秒为单位)。缺省值为 120 秒。"
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> 指定缓存的冲刷是否和磁盘同步。缺省为 OFF。要启用则可设为 ON。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# translation of Appendix_B.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "类定义"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "本附录包含了应用程序开发人员经常使用的类的概述。其目的是为编写 TxCore 应用程序提供一个快速参考手册。需要澄清的是,这里只给出了这些类的 public 或 protected 接口。"
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "类库"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Lock Manager"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:44+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat Documentation Group"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,45 @@
+# translation of Book_Info.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-07-04 05:56+0000\n"
+"PO-Revision-Date: 2008-07-08 12:26+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "JBoss TS 程序员指南"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise 应用程序平台"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "本书是《JBoss TS 程序员指南》基于企业级应用程序平台的版本"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1005 @@
+# translation of Chapter.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-26 15:12+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "概述"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"本章包含了对 <classname>TxCore</"
+"classname> 事务引擎以及用于 Java 类和工具的 <firstterm>Transactional Objects</firstterm> 的使用的描述。本章涉及的类是编写使用事务的容错应用程序的关键。因此,在介绍它们之后,我们将在一个简单的例程里进行应用。本章描述的类可以在 <classname>com.arjuna.ats.txoj</classname> 和 "
+"<classname>com.arjuna.ats.arjuna</classname> 包里找到。"
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – 事务引擎"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+"从面向对象的角度来看,构建可靠的分布式应用程序所需的机制以面向对象的方式呈现在程序员前面。某些机制需要被继承,如并行控制和状态管理;而另外一些机制,如对象存储和事务,被实现为象其他任何对象一样创建和操作的 <classname>TxCore</"
+"classname> 对象。"
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"当谈及持久性和并发控制机制时,我们假定使用了 <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) 类。如果不是这样的话,程序员要自己来处理所有这些问题。"
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "<classname>TxCore</classname> 使用面向对象的技术为程序员提供一个 Java 类的工具集,应用程序的类可以继承它们来获取所需的属性,如持久性和并发控制。这些类组成一个层次结构,下面是其中一部分,本文档在后面将对其进行讨论。"
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Txcore 的类层次结构"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+"除了指定事务的作用域和设置对象内部的锁以外,程序员无需做其他事情:<classname>TxCore</classname> 和 <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) 保证了事务性对象将被注册,由合适的事务驱动,并在出现故障时自动调用崩溃恢复机制(crash recovery mechanism)。"
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "保存对象状态"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"出于几种考虑,<classname>TxCore</classname> 需要记住对象的状态,如恢复(状态表示对象过去的某种状态)和持久性(状态代表应用程序终止时对象的最终状态)。这些要求都具有用相同机制实现的共同功能:<classname>InputObjectState</classname> 和 <classname>OutputObjectState</classname> 类。这些类维护一个内部的数组,其中的标准类型的实例可以持续地用合适的 <command>pack</command> (<command>unpack</"
+"command>) 操作进行处理。如果空间不够的话,缓冲会自动地根据需要调整大小。实例都以标准形式(所谓网络字节顺序)存储在缓冲里,这使得它们可以独立于主机类型。任何其他架构的格式(如 XDR 或 ASN.1)都可以简单地实现,只要用满足编码要求的操作替换相应的操作就可以了。"
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "Object Store"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "Java SecurityManager 强加的限制可能影响持久性的实现。因此,<classname>TxCore</classname> 提供的 object store 使用接口技术来实现。目前的发行版本包含的实现把对象状态写入到本地文件系统或数据库里,而其远程实现则通过接口使用一个客户端 stub(代理)访问远程服务。"
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "持久性对象在创建时被分配一个唯一的标识符(UID 类的实例),这被用来在 Object Store 内部进行标识。状态的读写分别通过 <literal>read_committed</literal> 和 <literal>write_(un)committed</literal> 操作进行。"
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "恢复和持久化"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"类层次结构的根部是 <classname>StateManager</"
+"classname> 类。这个类负责激活和取消激活对象以及恢复对象。它的简化签名是:"
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "我们假设对象有 3 种可能的状态。它可能是可恢复的(recoverable),此时 <classname>StateManager</classname> 将试图生成并维护合适的对象恢复信息。这样的对象的生存时间不超过创建它的应用程序。对象也可能是可恢复且持久的(recoverable and persistent),此时它的生存时间将超过创建和访问它的应用程序,所以除了维护恢复信息以外,<classname>StateManager</classname> 还将在适当时候通过调用激活(取消激活)操作来试图加载(卸载)任何现有的持久性状态。最后,对象可能不具有这些能力中的任何一种,此时既不会保持恢复信息也不会自动尝试激活/取消激活对象。"
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"如果某个对象是可恢复的(recoverable)或可恢复及持久的(recoverable and persistent),那么<classname>StateManager</classname> 将在应用程序执行过程中的不同时间调用 <command>save_state</command>(执行 <command>deactivate</"
+"command> 时)和 <command>restore_state</command>(执行 activate 时)操作。既然 <classname>StateManager</"
+"classname> 不能够检测用户级别的状态变化,程序员必须实现这些操作。(我们正在考虑自动生成缺省的 <command>save_state</command> 和 "
+"<command>restore_state</command> 操作,并在可以提高效率的情况下允许程序员对其进行覆盖。)这使得程序员能够决定对象状态的哪些部分应该持久化。例如,对于一个电子表格来说,如果某些值只是简单的重复计算结果,你没有必要存储所有的条目。具有整型成员变量 A、B 和 C 的 <classname>Example</classname> 类的 <command>save_state</command> 实现可以仅仅是:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 "我们假设对象有 3 种可能的状态。它可能是可恢复的(recoverable),此时 <classname>StateManager</classname> 将试图生成并维护合适的对象恢复信息。这样的对象的生存时间不超过创建它的应用程序。对象也可能是可恢复且持久的(recoverable and persistent),此时它的生存时间将超过创建和访问它的应用程序,所以除了维护恢复信息以外,<classname>StateManager</classname> 还将在适当时候通过调用激活(取消激活)操作来试图加载(卸载)任何现有的持久性状态。最后,对象可能不具有这些能力中的任何一种,此时既不会保持恢复信息也不会自动尝试激活/取消激活对象。"
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"如果某个对象是可恢复的(<emphasis>recoverable</emphasis>)或可恢复及持久的(<emphasis>recoverable "
+"and persistent</emphasis>),那么<classname>StateManager</classname> 将在应用程序执行过程中的不同时间调用 <command>save_state</command>(执行 <command>deactivate</"
+"command> 时)和 <command>restore_state</command>(执行 <command>activate</command> 时)操作。既然 <classname>StateManager</"
+"classname> 不能够检测用户级别的状态变化,程序员必须实现这些操作。(我们正在考虑自动生成缺省的 <command>save_state</command> 和 "
+"<command>restore_state</command> 操作,并在可以提高效率的情况下允许程序员对其进行覆盖。)这使得程序员能够决定对象状态的哪些部分应该持久化。例如,对于一个电子表格来说,如果某些值只是简单的重复计算结果,你没有必要存储所有的条目。具有整型成员变量 A、B 和 C 的 <classname>Example</classname> 类的 <command>save_state</command> 实现可以仅仅是:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"所有的 <command>save_state</command> 和 "
+"<command>restore_state</command> 方法都有必要调用 <classname>super.save_state "
+"</classname> 和 <classname>super.restore_state</classname>。这是为了顾及崩溃恢复机制里的性能问题。"
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "Transactional Object for Java 的生命周期"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"我们假定未使用的持久性对象保持 <emphasis>passive</"
+"emphasis> 状态且状态保留在 object store 里,需要时可转换成 <emphasis>activated</emphasis> 状态。<xref linkend="
+"\"figure_2\"/> 里展示了 <emphasis>TXOJ</emphasis> 里的持久性对象的基本生命周期。"
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "持久性对象的生命周期。"
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "对象的状态初始时为 passive,作为 <classname>OutputObjectState</classname> 类的实例保存在 object store 里。"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+"当应用程序需要时,<command>read_committed</command> 操作从 Object Store 里读取对象并自动激活它,且通过 <command>restore_state</command> 操作从 <classname>InputObjectState</"
+"classname> 实例转换成 fully-fledged 对象。"
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "当应用程序已经结束运行,它用 <command>save_state</command> 操作将对象转换成 <classname>OutputObjectState</classname> 实例来取消激活,然后用 write_uncommitted 操作把对象作为影子拷贝(shadow copy)存回到 object store 里。这个影子拷贝可以用 <command>commit_state</command> 操作提交并覆盖前面的版本。事务系统通常向程序于隐藏现有的影子拷贝。对象的取消激活通常只在激活对象的顶级事务提交时才发生。"
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "在其生存期间,持久性对象可以多次被激活和钝化。"
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "并行控制器"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "<classname>LockManager</classname> 类实现了并行控制器(concurrency controller),它提供智能的缺省行为,但又允许程序员在必要时进行覆盖。和 <classname>StateManager</classname> 和持久性一样,并行控制实现也是通过接口来进行访问。除了提供对远程服务的访问,目前并行控制的实现包括:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "本地磁盘/数据库实现,通过写入本地文件系统或数据库使锁持久化。"
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "纯本地实现,锁在创建它的虚拟机的内存里进行维护。和写入本地磁盘相比,这个实现具有更好的性能,但对象不能在虚拟机之间共享。重要的是,这是一个基本的 Java 对象,它不具备 SecurityManager 能影响的需求。"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "并行控制器的主要编程接口是通过 setlock 操作来实现。在缺省情况下,对每个对象,运行系统在多个 reader、单一 writer 策略之后,都强制严格的两阶段锁定。然而,如 <xref linkend=\"figure_1\"/> 所示,通过继承 <classname>Lock</classname> 类,程序员有可能提供自己的锁实现以及不同的锁冲突规则来启用<firstterm>类型专有的并行控制(type specific concurrency control)</firstterm>。"
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "既然 <classname>StateManager</classname> 不能决定某个操作是否修改了对象,<classname>LockManager</classname> 不能决定某个操作是否要求读或写锁,程序员需要控制对锁的获取。然而,锁的释放是由系统控制的,且不需要程序员的进一步干预。这确保可以维护正确的两阶段的属性。"
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"<classname>LockManager</classname> 类主要负责管理为对象设置锁的请求或者酌情释放锁。然而,既然它来源于 <classname>StateManager</"
+"classname>,它也可以控制是否调用某些继承的功能。例如,<classname>LockManager</classname> 假定写锁的设定暗示着调用操作必须修改对象。反过来如果对象是可恢复的,这会导致对恢复信息的保存。类似地,对锁的成功获取导致激活操作的调用。"
+
+#. 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 "下面的代码展示了我们如何获取对象的写锁:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "事务协议引擎"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "事务协议引擎(transaction protocol engine)由 <classname>AtomicAction</classname> 类代表,它使用 <classname>StateManager</classname> 为崩溃恢复机制记录足够的信息以便在发生故障时完成事务。它具有启动和终止事务的方法,以及在程序员需要实现自己的资源时向当前事务注册的方法。因为 <emphasis>TxCore</emphasis> 支持子事务,如果事务以已经运行的事务的作用域开始,那么它将自动地进行嵌套。"
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "<emphasis>TxCore</emphasis> 可识别多线程,它允许应用程序里的每个线程共享一个事务或者在自己的事务里运行。因此,所有的 <emphasis>TxCore</emphasis> 类也线程安全的(thread safe)。"
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "示例"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "下面这个简单的示例演示了激活(activation)、终止(termination)和提交(commitment)之间的关系:"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "上面代码的执行涉及了下面的活动序列:"
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"创建对持久性对象绑定;这可能涉及 stub 对象的创建以及对远程对象的调用。在上面的例子里,我们重新绑定了一个现有的持久性对象 <literal>Name-A</"
+"literal> 和一个新的持久性对象。远程对象的命名系统维护着对象名和位置的映射,我们在后面的章节里将进行介绍。"
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "原子事务的启动。"
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "操作调用: 作为给定调用的一部分,对象实现负责确保它在读或写模式下(假设没有锁突)被锁定并初始化,如果必要的话,使用 Object Store 里最新提交的状态。锁在事务里第一次被获取时,如果可能的话,对象的状态将从 Object Store 里获得。"
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "顶层动作的提交。这包括更新 Object Store 里任何被修改的对象的状态。"
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "破坏之前创建的绑定。"
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "类层次结构"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+"下面是组成 <emphasis>TxCore</"
+"emphasis> 的类层次结构主要的类。"
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"编写容错应用程序的程序员将主要关心 <classname>LockManager</classname>、 <classname>Lock</classname> 和 <classname>AtomicAction</classname> 类。对于程序员来说,其他重要的类是 <classname>Uid</classname> 和 <classname>ObjectState</"
+"classname>。大多数 <emphasis>TxCore</emphasis> 系统类都源自基类 <classname>StateManager</classname>,它为管理持久的和可恢复的对象提供必要的原始功能。这些功能包括对对象激活和取消激活的支持,以及基于状态的对象恢复。<classname>LockManager</"
+"classname> 类使用 <classname>StateManager</classname> 的功能并提供实现原子动作的 serialisability 属性所需的并行控制(当前实现里的两阶段锁定)。<classname>AtomicAction</classname> 和 "
+"<classname>TopLevelTransaction</classname> 支持对原子动作的实现。"
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+"大多数 <emphasis>TxCore</emphasis> 系统类都源自基类 <classname>StateManager</classname>,它为管理持久的和可恢复的对象提供必要的原始功能。这些功能包括对对象激活和取消激活的支持,以及基于状态的对象恢复。<classname>LockManager</"
+"classname> 类使用 <classname>StateManager</classname> 的功能并提供实现原子动作的 serialisability 属性所需的并行控制。"
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"让我们看一个简单的例子。假设 <classname>Example</classname> 是一个用户定义的、源自 <classname>LockManager</classname> 的持久性对象。包含原子事务(Trans)的应用程序通过调用 op1 操作(涉及对象 O 的状态改变)访问类型为 <classname>Example</"
+"classname> 的对象(称为 O)。serialisability 属性要求在对对象 O 进行修改之前,必须获取它的写锁;因此 op1 的内容必须包含对并行控制器的 <literal>setlock</literal> 操作的调用。"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr "在这里,<classname>LockManager</classname> 类提供的 <literal>setlock</literal> 操作执行下面的功能:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "检查写锁和当前持有的锁的兼容性,如果允许的话:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"调用 <classname>StateManager</classname> 的 activate 操作,如果还没完成的话,这将从 Object Store 载入 O 的最新持久性状态。然后调用 <classname>StateManager</classname> 的 modified 操作,它将影响为 O 创建的 <classname>RecoveryRecord</classname> 或 <classname>PersistenceRecord</"
+"classname> 的实例并将其插入到 <classname>Trans</classname> 的 <classname>RecordList</classname> 里,这取决于 O 是否是持久的(锁是 <literal>WRITE</literal> 锁,所以在修改前必须获取对象的旧的状态)。"
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr "创建并在 Trans 的 RecordList 里插入一个 LockRecord 实例。"
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"现在假设在已经获取了锁以后,动作 <literal>Trans</literal> 在某个时间被取消了。<classname>AtomicAction</classname> 的 rollback 操作将在不同记录上调用合适的 <literal>Abort</literal> 操作来处理和 <literal>Trans</literal> 关联的 <classname>RecordList</"
+"classname> 实例。这个操作的实现 <classname>LockRecord</classname> 将释放 <literal>WRITE</literal> 锁,而 <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> 的实现将恢复 O 以前的状态。"
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""
+"明白上面所有的工作都是由 <emphasis>TxCore</emphasis> 代表应用程序程序员自动执行是很重要的。程序员只需要启动事务并设置一个合适的锁:<emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> 将负责参与者的注册、持久化、并行控制和恢复。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1807 @@
+# translation of Chapter_02.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:44+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "使用 TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+"本节我们将描述 <emphasis>TxCore</emphasis> 和 <emphasis>Transactional Objects for "
+"Java</emphasis> 的更多细节,并展示如何用它们来构建事务性应用程序。"
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "状态管理"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "对象的状态"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"出于几种考虑,<classname>TxCore</classname> 需要记住对象的状态,如恢复(状态表>"
+"示对象过去的某种状态)和持久性(状态代表应用程序终止时对象的最终状态)。这些要求"
+"都具有用相同机制实现的共同功能:<classname>InputObjectState</classname> 和 <classname>"
+"OutputObjectState</classname> 类。"
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"<classname>Input/OutputBuffer</classname> 类维护维护一个内部的数组,其中的标准类型"
+"的实例可以持续地用合适的 "
+"pack(unpack)操作进行处理。如果空间不够的话,缓冲会自动地根据需要调整大小。实例都以标准形式(所谓网络字节顺序)存储在缓冲里,这使得它们可以独立"
+"于主机类型。"
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+"<classname>Input/OutputObjectState</classname> 类提供 <classname>"
+"Input/OutputBuffer</classname> 的所有功能(通过继承),但添加了两个额外的实例变量来指定 UID 和代表 <"
+"classname>Input/OutputObjectState</classname> 实例的压缩映像的对象的类型。在存储和读取 Object "
+"Store 时要用到它们。"
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "对象库(Object Store)"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 ""
+"<classname>Input/OutputObjectState</classname> 提供的 Object Store "
+"故意具有一个相当受限的接口,这样就可以以不同的方式来实施。例如,Object Store 可以实施在共享内存里、在 Unix "
+"文件系统里(以不同的形式)以及作为可远程访问的库。关于 <emphasis>TxCore</emphasis> 的可用 Object Store "
+"的完整信息,你可以参考附录。"
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+"和所有 <emphasis>TxCore</emphasis> 的类一样,缺省的 Object Store 也是纯 Java "
+"的实现。要访问共享内存和其他更为复杂的 Object Store 实现,使用 native 方法时必需的。"
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"所有的 Object Store 都保存并检索 <classname>Input/OutputObjectState</classname> "
+"类的实例。这些实例根据 UID 和它们所代表的对象的类型来命名。读取状态使用 <command>read_committed</command> "
+"操作而写入则使用 <command>write_uncommitted</command> "
+"操作。新的对象状态通常不覆盖旧的对象状态,而是以影子拷贝的方式写入。这些影子拷贝只有在 <command>commit_state</command> "
+"操作被调用时才替换原始的状态。通常,和 Object Store 的所有交互都通过 <emphasis>TxCore</emphasis> "
+"系统组件来执行,因此对于程序员来说,任何对象的影子版本都是隐藏的。"
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"当事务性对象被提交时,它有必要将某些状态的改变持久化,这样在出现故障时就能够恢复并继续提交或回滚。当使用 <emphasis>Transactional "
+"Objects for Java</emphasis> 时,<emphasis>TxCore</emphasis> 将自动处理这些事情。要确保 ACID "
+"属性,这些状态变化必须在事务可以继续提交之前冲刷至 persistence store "
+"实现里。如果没有这样做的话,应用程序可能假定事务已经提交,而实际上状态修改仍然驻留在操作系统的缓存里,并可能在随后出现主机故障时丢失。在缺省情况下,<em"
+"phasis>TxCore</emphasis> "
+"将确保这样的状态修改被冲刷。然而,这样做会明显地降低应用程序的性能。要阻止事务性对象的状态冲刷,你可以把 <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 "选择 Object Store 实现"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"<emphasis>TxCore</emphasis> 支持几种不同的 Object Store "
+"的实现。附录里描述了这些实现以及如何为每个对象选择和配置实现(使用 <literal>com.arjuna.ats.arjuna.objectstore."
+"objectStoreType</literal> 属性变量),并指出怎样提供其他的实现。"
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+"<emphasis>TxCore</emphasis> çš„ <classname>StateManager</classname> "
+"类管理对象的状态并提供用于状态管理目的的对象所需的基本支持机制。<classname>StateManager</classname> "
+"负责创建和注册和事务性对象的持久化和恢复相关的合适资源。如果事务是嵌套的,那么 <classname>StateManager</classname> "
+"也将在提交时在子事务和父事务间传递这些资源。"
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+"我们假设 <emphasis>TxCore</emphasis> 里的对象有 3 种可能的状态。它可能是可恢复的(recoverable),此时 <"
+"classname>StateManager</classname> 将为这个对象(<classname>"
+"Input/OutputObjectState</classname> "
+"的实例)试图生成并维护合适的对象恢复信息。这样的对象的生存时间不超过创建它的应用程序。对象也可能是可恢复且持久的(recoverable and "
+"persistent),此时它的生存时间将超过创建和访问它的应用程序,所以除了维护恢复信息以"
+"外,<classname>StateManager</classname> 还将在适当时候通过调用 <command>activate</command>"
+"(<command>deactivate</command>)操"
+"作来试图加载(卸载)任何现有的持久性状态。最后,对象可能不具有这些状态中的任何一"
+"种,此时既不会保持恢复信息也不会自动尝试激活/取消激活对象。这个对象属性在构建时选定且不能再改动。因此对象在其生存期间并不能够获得(或丢失)恢复能力。"
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+"如果某个对象是可恢复的(recoverable)或可恢复及持久的(recoverable and persistent),那么<classname>StateManager</classname> 将在应用程序执行过程中的不同时间调"
+"用 <command>save_state</command>(执行 <command>deactivate</"
+"command> 时)和 <command>restore_state</command>(执行 activate 时)操作。既然 <classname>StateManager</classname> 不能够检测用户级别的状态变化,程序员必须实现这些操作。(我们正在考虑"
+"自动生成缺省的 <command>save_state</command> 和 "
+"<command>restore_state</command> 操作,并在可以提高效率的情况下允许程序员对其进"
+"行覆盖。)这使得程序员能够决定对象状态的哪些部分应该持久化。例如,对于一个电子表"
+"格来说,如果某些值只是简单的重复计算结果,你没有必要存储所有的条目。具有整型成员"
+"变量 A、B 和 C 的 <classname>Example</classname> 类的 <command>save_state</command> 实现可以仅仅是:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+"为了支持持久性对象的崩溃恢复,用户对象的所有 <command>save_state</command> 和 <command>restore_state</command> 方法都有必要调用 <command>super.save_state</command> 和 "
+"<command>super.restore_state</command>。"
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "type 方法用来决定实例将在 Object Store 里保存和最终恢复的位置。这实际上可以是任何有效的字符串。然而,你应该避免使用井号(#),因为它是用于 <emphasis>TxCore</emphasis> 所要求的特殊目录的保留字。"
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+"<classname>StateManager</"
+"classname> 的 <command>get_uid</command> 操作返回只读的对象的内部系统名称,它可用于任何目的,例如程序员可用来在命名服务器里注册。你只能在对象构建时设置内部系统名称的值 - 通过显性参数或在创建对象时生成新的标识符。"
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "<command>destroy</command> 方法可用来从 Object Store 里删除对象的状态。这是一个原子操作,因此只能在这个调用所处的顶层事务最终提交时才能进行完成。在调用此操作之前,程序员必须获取对对象的独占访问。"
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "既然对象的恢复和持久化本来都有类似的需求(唯一不同的是状态信息保存的地方和目的)。<classname>StateManager</classname> 有效地把这两种属性组合到了单一的机制里。那就是,它把 Input/OutputObjectState 类的实例既用于恢复也用于持久化。传递给 <command>save_state</command> 和 <command>restore_state</command> 的另外一个参数允许程序员决定任何调用的目的,这就可以保存用于恢复和持久化的不同信息。"
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "对象模型"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "<emphasis>TxCore</emphasis> 支持两种对象模型,我们来看看它们是如何影响对象状态和并行控制的实施的:"
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>:应用程序只存在对象的单一拷贝;这将驻留在单一的 JVM 里,所有的客户都必须解决对这个服务器的调用。这种模型提供了更好的性能,但也导致了单一的故障点,在多线程的环境里如果某一线程崩溃的话,它可能不能保护对象。"
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Single 对象模型"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE:逻辑上来说只存在对象的单一实例,但其拷贝可以在不同的 JVM 间传递;这种模型的性能比 SINGLE 模型要差,但它提供了更好的容错能力。"
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Multiple 对象模型"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"SINGLE 是缺省的对象模型。对于每个对象,程序员都可以用合适的 <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> 实例覆盖它。"
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "你可以在对象后续的每次实例化之间修改模型,也就是说,在对象的生存期间模型不需要维持不变。"
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr "要提供合适的 <classname>ObjectName</classname> 类,你有必要执行下面的步骤:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "创建一个新的 <classname>ObjectName</classname> 实例。"
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"用 <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> 名称设置对象模型属性。"
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "例如:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "总结"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"总的来说,<emphasis>TxCore</emphasis> 的 <classname>StateManager</"
+"classname> 类管理对象的状态并提供所有用于状态管理目的的基本支持。类开发人员必须定义这样一些操作:<command>save_state</command>、<command>restore_state</command> 和 "
+"<command>type</command>。"
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"每当对象的状态需要为以后的使用(主要是恢复和持久化)而进行保存时,它将被调用。 <literal>ObjectType</literal> 参数指定 <command>save_state</command> 被 <emphasis>TxCore</emphasis> 调用的原因。这使程序员可以根据恢复和持久化是否需要该状态来把不同的信息保存至作为第一个参数提供的 <classname>OutputObjectState</classname> 里。例如,如用于恢复目的,其他 <emphasis>TxCore</emphasis> 对象的指针可以简单地保存为指针,而对于持久化则保存为 UID。如前面所展示的,<classname>OutputObjectState</"
+"classname> 类提供了方便保存所有 Java 基本类型实例的操作。为了支持持久性对象的崩溃恢复,所有 <command>save_state</"
+"command> 方法都有必要调用 <command>super.save_state</command>。"
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "<command>save_state</command> 假定对象具有内部一致性,所有保存的变量都具有有效值。在编程时程序员需要确保这一点。"
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+"每当对象的状态需要恢复时被调用。第二个参数允许状态的不同插值。为了支持持久性对象的崩溃恢复,所有 <command>restore_state</"
+"command> 方法都有必要调用 <command>super.restore_state</command>。"
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "String type ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"<emphasis>TxCore</emphasis> 的持久化机制需要一个获取对象类型(字符串形式)的方法,这样它才可以在 Object Store 里保存/恢复对象的状态。这个信息通常指出类在层次结构中的位置。例如,“/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”。"
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "示例"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "请看下面源自 <classname>StateManager</classname> 的基本 <classname>Array</classname> 类(在这个例子里,为了解释保存和恢复对象的状态, highestIndex 变量用来记录这个类里非零值的索引值最高的元素):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+"下面是 <command>save_state</command>、<command>restore_state</command> 和 "
+"<command>type</command> 的定义:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "锁管理和并行控制"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 "<emphasis>TxCore</emphasis> 里的并行控制信息由锁来维护。需要在不同线程里的对象之间共享的锁可以保存在 Lock Store 里,这和前面介绍的 Object Store 相似。<emphasis>TxCore</emphasis> 提供的 Lock Store 具有一个刻意进行限制的接口,它可以用不同的方式来实施。例如,Lock Store 可以在共享内存里、Unix 文件系统里(以不同的形式)或是以远程访问的方式来实施。关于 <emphasis>TxCore</emphasis> 里可用的 Lock Store 的更多信息,请参考附录。"
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "和所有 <emphasis>TxCore</emphasis> 的类一样,缺省的 Lock Store 也是纯 Java 的实现。要访问共享内存和其他更为复杂的 Lock Store 实现,使用 native 方法是必需的。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "选择 Lock Store 的实现"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"<emphasis>TxCore</emphasis> 支持几种不同的 Lock Store 的实现。如果对象模型为 SINGLE,那么维护锁就不需要 Lock Store,因为不会输出对象的信息。然而,如果使用了 MULTIPLE 模型,那么不同的运行环境(进程、Java 虚拟机)可能需要共享并行控制信息。Lock Store 使用的实施类型可以在执行环境里用 <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> 属性变量指定。目前它可以有如下的值:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "这是一个内存里(In-memory)的实施,它缺省不会允许在执行环境间共享保存的信息。信息的共享需要应用程序开发人员来实现。"
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"这是缺省的实施方法,它把锁信息保存在本地的文件系统里。因此共享相同文件 store 的执行环境可以共享并行控制信息。锁信息写入的文件系统的根是 <emphasis>TxCore</emphasis> 安装目录下的 <filename>LockStore</"
+"filename> 目录。这可以在运行时通过设置 <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> 属性变量或者替换 <literal>CLASSPATH</literal> 的路径来覆盖。"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>或</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "如果不使用这两种方法,那么缺省的位置将和安装目录里的 <filename>etc</filename> 目录平级。"
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 "并行控制是用 <classname>LockManager</classname> 类实现的,它提供缺省行为但也允许程序员在特殊模式下进行覆盖。并行控制器的主要编程接口是通过 setlock 操作来进行的。在缺省情况下,对每个对象,运行系统在多个 reader、单一 writer 策略之后,都强制严格的两阶段锁定。既然 <classname>StateManager</classname> 不能决定某个操作是否需要修改对象,而 <classname>LockManager</classname> 也不能决定操作是否需要读或写锁,那么锁的获取就通过编程来控制。然而,锁的释放通常是系统来控制的,它不需要程序员的进一步干预。这确保了正确的两阶段属性。"
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"<classname>LockManager</classname> 类主要负责管理为对象设置锁的请求或者酌情释放"
+"锁。然而,既然它来源于 <classname>StateManager</classname>,它也可以控制是否调用某些继承的功能。例如,<classname>LockManager</classname> 假定写锁的设定暗示着调用操作必须修改对象。反过来如果对象是可恢复的,这会导致对恢复信息的保存。类似地,对锁的成功获取导致 <command>activate</command> 操作的调用。"
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"因此,<classname>LockManager</classname> 直接负责激活/取消激活持久性对象以及注册用于并行控制管理的 <classname>Resources</classname>。通过启用 <classname>StateManager</classname> 类,它也负责注册用于持久化/可恢复的状态操作和对象恢复的 <classname>Resources</classname>。应用程序开发人员简单地设置合适的锁,启动和结束事务,且继承 <classname>StateManager</classname> 的 <command>save_state</command> 和 <command>restore_state</"
+"command> 方法。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "<command>setlock</command> 操作必须用所要求的锁的类型(<literal>READ</literal> / <literal>WRITE</literal>)以及获取锁的重试次数参数化。如果存在锁的冲突,就会出现下面的情况之一:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"如果 retry 的值和 <literal>LockManager.waitTotalTimeout</"
+"literal> 相等,那么调用 <command>setlock</command> 的线程将堵塞,直到锁释放为止,或是已过了指定的超时时间且返回的是 <literal>REFUSED</literal>。"
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+"如果开始时不能获取锁,<classname>LockManager</"
+"classname> 将重试指定的次数,每次尝试失败之后都等待指定的时间。缺省是 100 次,每次尝试之间都有 0.25 秒的间隔;重试之间的间隔以毫秒指定。"
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "如果发生了锁冲突,当前的实现简单地使锁请求超时,这就避免了死锁而不需要提供完全的死锁检测模式。如果获得了所请求的锁,setlock 操作将返回 <literal>GRANTED</literal> 值,否则将返回 <literal>REFUSED</literal>。程序员要确保只有在获取了锁以后才执行后面的代码。下面是一个使用 <command>setlock</command> 操作的例子。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "并行控制机制集成在原子动作机制里,因此保证了当获取了对象的锁时,合适的信息向原子动作注册以确保在正确时间释放锁。如果锁是在原子动作里获取的话,这解除了程序员显性地释放锁的负担。然而,如果锁是在原子动作作用域<emphasis>之外</emphasis>获取的话,程序员要负责用 <command>releaselock</command> 操作按需要释放锁。"
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "锁策略"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"不象许多其他系统,<emphasis>TxCore</emphasis> 里的锁不具有特殊的系统类型。相反,它们都是其他 <emphasis>TxCore</emphasis> 对象(<classname>Lock</classname> 类也是继承自 <classname>StateManager</classname>,所以可根据需要持久化且可以简单形式命名)的简单实例。而且,<classname>LockManager</classname> 刻意不顾授予锁请求时使用的实际策略的模式。这样的信息由实际的 <classname>Lock</"
+"classname> 类的实例来维护,它提供 <classname>LockManager</"
+"classname> 可用来检测锁冲突的操作(<literal>conflictsWith</literal>)。这种分离很重要,因为它允许程序员从基本的 <classname>Lock</classname> 类派生新的锁类型,且通过定义合适的冲突而使增强的不行控制成为可能。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"<classname>Lock</classname> 提供了一个 <command>modifiesObject</"
+"command> 操作,<classname>LockManager</classname> 用它来决定在赋予锁时是否需要调用 modified。提供这个操作是为了支持锁模式而不是简单的读和写。<classname>Lock</classname> 类支持传统的多 reader/单一 writer 策略。"
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "对象构造和析构"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "让我们回忆一下,<emphasis>TxCore</emphasis> 对象可以是可恢复的、可恢复及持久的或者是 NEITHER。此外,每个对象都拥有一个唯一的内部名称。这些属性只有在对象被构造时才可进行设置。因此 <classname>LockManager</classname> 提供两个作用域为 protected 的构造函数供子类使用,每个都用于不同的目的:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "这个构造函数允许创建新的对象,也就是假定以前的状态不存在。"
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 "这个构造函数允许创建新的对象,也就是假定以前的状态不存在。<literal>ObjectType</literal> 参数指定对象是否是可恢复的(<literal>RECOVERABLE</literal>)、可恢复且持久的(<literal>ANDPERSISTENT</literal>)或两者皆非(<literal>NEITHER</literal>)。如果对象被标记为持久的,那么该对象的状态将保存在某个 Object Store 里。共享参数为只有为 <literal>RECOVERABLE</literal> 时才有意义;如果 <literal>attr</literal> 非空且对象模型为 <literal>SINGLE</literal>(缺省值),那么对象的可恢复状态将在对象内部进行维护(也就是没有外部的代表),否则内存里(In-memory)的 Object Store 将被用来保存原子动作间的对象状态。"
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "新的持久性对象的构造函数应该利用其自身的原子动作。这将确保对象的状态在构造函数里的动作提交时,或存在包含的动作而相关的顶层事务提交时,自动地写入到 Object Store。本章后面的例子将进一步解释这一点。"
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 ""
+"这个构造函数允许对现有的持久性对象的访问,其内部名称由参数 <literal>objUid</literal> 给定。系统通常为使用这个操作构建的对象从 "
+"Object Store 里自动地加载其优先状态(由 <literal>objUid</literal> 标识)。"
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "这个构造函数允许访问现有的持久性对象,其内部名由 <literal>objUid</literal> 参数指定。用这个操作构造的对象通常将具有由系统从 Object Store 里自动加载的之前的状态(由 <literal>objUid</literal> 指定)。如果 attr 参数非空,且对象模型是 <literal>SINGLE</literal>(缺省行为),那么对象将不会在每个顶层事务启动时被重新激活。"
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "用户自定义的类的析构必须调用继承的操作 terminate 来通知状态管理机制对象将被销毁,否则可能出现不可预料的后果。"
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"因为 <classname>LockManager</classname> 继承自 <classname>StateManager</classname>,它将把任何提供的 <classname>ObjectName</classname> 实例传递给 <classname>StateManager</"
+"classname> 类。因此,如之前所描述的,你可以设置 <classname>StateManager</classname> 对象模型。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,688 @@
+# translation of Chapter_03.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-01 14:00+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "一般的事务问题"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "TxCore 的高级事务问题"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "应用程序和类开发人员都可以使用原子动作(事务)。因此整个操作(或部分操作)都可以根据特殊操作模式所需而成员原子的。本章将描述使用事务的一般问题以及 <emphasis>TxCore</emphasis> 专有的问题。"
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "检查事务"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"在多线程应用程序里,多个线程可能和某个事务相关联,也就是说,这些线程共享上下文。此外,有可能某个线程终止了一个事务,而该事务里还有其他的活动线程。在分布式环境里,保证事务终止时所有相关的线程都结束是很困难的。在缺省情况下,如果某个线程终止了一个事务而该事务里还有其他的活动线程,<emphasis>TxCore</emphasis> 将产生一个警告;然而,这仍将允许事务终止过程继续。也有其他的解决方法,例如,阻塞终止事务的线程,一直到所有其他线程都和事务上下文不再相关联。因此,<emphasis>TxCore</emphasis> 提供了 <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> 类,它允许覆盖线程/事务终止策略。每个事务都有这个类的一个实例与其相关联,应用程序开发人员可以为每个不同的事务提供自己的实现。"
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "当线程试图终止事务且该事务里还有其他活动线程时,系统将调用事务的 <classname>CheckedAction</classname> 对象的 check 方法。check 方法的参数是:"
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "指出事务是否正在提交或回滚。"
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "事务标识符。"
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "该事务里当前所有标记为活动的线程列表。"
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "当 check 返回时,事务终止将继续进行。显然,此时事务的状态可能和 check 刚被调用时会有不同,例如,事务可能随后已经被提交了。"
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "收集统计信息"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr "在缺省情况下,JBossTS 不维护事务的任何历史信息。然而,通过把 <literal>com.arjuna.ats.arjuna.coordinator.enableStatistics</literal> 属性变量设置为 YES,事务服务将保留关于事务创建的数量以及结果的信息。这些信息可以在事务性应用程序的执行过程中通过 <classname>com.arjuna.TxCore.Atomic.TxStats</classname> 类获得:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "最近提交资源优化"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr "在某些情况下,你有必要把非两阶段提交的参与者放入两阶段提交的的事务里。如果只有单个资源,那么就不需要两阶段提交。然而,如果在事务里多个资源呢?此时就可以使用最近资源提交优化(Last Resource Commit optimization,LRCO)。只知道一阶段提交(也就是只提交或回滚,没有准备阶段)的单个资源有可能参与到带有两阶段提交资源的事务里。协调者将稍微区别对待一阶段提交资源,它首先执行所有其他资源的准备阶段,然后试图提交控制权已交给一阶段资源的事务。如果提交成功,协调者登记提交决定并试图提交其他资源。"
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr "为了利用 LRCO,参与者必须实现 <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> 接口并通过 <command>BasicAction.add</command> 操作向事务注册。既然这个操作需要 <classname>AbstractRecord</classname> 实例,你必须创建一个 <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> 实例并把参与者作为参数传给构造函数,就象下面这样:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "嵌套的事务"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr "嵌套的事务没有特殊的构造方法:如果某个动作在另外一个动作还在运行时开始的话,它将自动被嵌套。这允许应用程序使用模块化结构,对象可以用操作里的原子动作来实现,而程序员无需担心使用对象的程序,也就是不用管应用程序使用原子动作与否。因此,在某些应用程序里,动作可能是顶层的,而其他地方则可能是嵌套的。应用程序开发人员可以共享以这种方式编写的对象,而 <emphasis>TxCore</emphasis> 将保证它的一致性。"
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "如果某个嵌套的动作中止了,那么它的所有工作都将被取消,虽然严格的两阶段锁意味着它所获得的锁在顶层动作提交或中止前都将继续保留。如果嵌套的动作提交了,它已经执行的工作将只在顶层动作提交时才被系统提交;如果顶层动作中止,那么所有这些工作都会被取消。"
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "嵌套动作的提交或中止并不自动影响它嵌套的动作的结果。这取决于应用程序的编写,程序员可以让原子动作包含错误处理、取消已完成的工作等等。"
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "异步提交事务"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "在缺省情况下,JBossTS 以同步的方式执行提交顶层事务的提交协议,也就是说,所有注册的资源将按单个进程进行准备,然后进行提交或回滚。这种方式可能会有如下的缺点:"
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "在有许多注册的资源的情况下,每个资源的准备操作可以并行地调用。其缺点时如果注册资源列表里的某个“早”资源迫使准备阶段进行回滚的话,有可能许多准备操作就毫无必要了。"
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "在应用程序不要求启发式报告(heuristic reporting)时,既然提交协议的第二阶段的成功或失败都不重要,那它就可以异步地进行。"
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"因此,<emphasis>JBossTS</emphasis> 提供了运行时选项来启用可能的线程优化。通过设置 <literal>com.arjuna.ats.arjuna.coordinator.asyncPrepare</literal> 环境变量为 <literal>YES</literal>,在准备阶段将为事务里每个注册的参与者创建一个独立的线程。而通过设置 <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> 环境变量为 <literal>YES</literal>"
+",如果已知不要求启发式结果的话,就可以创建一个独立的线程来完成事务的第二阶段。"
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "独立的顶层事务"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr "除了普通的顶层和嵌套原子动作,<emphasis>TxCore</emphasis> 也支持独立的顶层动作,它可以用来以可控的方式绕开严格的串行化要求。独立的顶层动作可以在另外一个原子动作里的任何地方执行,且行为和普通的顶层动作完全一样,那就是:在提交后,它的结果将时永久的,且即使它嵌套的任何动作发生中止也无法取消这个结果。"
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "独立的顶层动作"
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "展示了一个典型的原子动作嵌套,动作 B 嵌套在 A 里。虽然原子动作 C 从逻辑上来将嵌套在 B 里(当 B 为活动状态时,它的 Begin 操作被调用),但因为它是一个独立的顶层动作,它将独立于此结构里的其他动作提交或中止。因为独立顶层动作的性质,你应该小心使用且只有在仔细检查其用途后再使用。"
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "顶层动作可以通过声明和使用 <classname>TopLevelTransaction</classname> 的实例来在应用程序内部使用。它们的使用方法和其他事务完全一样。"
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "save_state 和 restore_state 里的事务"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"当编写 <command>save_state</command> 和 <command>restore_state</command> 操作时需要小心确保没有启动任何事务(在操作里显性地启动或通过使用其他操作隐形地启动)。这个限制是由于 <emphasis>TxCore</emphasis> 可能把 <command>restore_state</command> 作为其提交过程的一部分来调用,从而导致了在一个事务的提交或中止阶段试图"
+"执行另外一个原子事务。这可能违背了被提交(中止)的事务的原子属性,因此不应该使用"
+"。"
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "示例"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "如果我们考虑前面给出的 Array 示例,它的 set 和 get 操作可以象下面这样实现。"
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "这是一段简化了的代码,它忽略了错误和异常处理。"
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "垃圾回收对象"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "当垃圾回收器决定不再需要 Java 对象时,它们就会被删除。删除在事务控制之下的对象必须小心行事,因为如果对象在事务里操纵,它的命运实际上是由事务来决定的。因此,不管应用程序是否维护对事务性对象的引用,<emphasis>TxCore</emphasis> 总是保留自己的引用来确保这个对象不会被当作垃圾回收,一直到所有事务都已经结束为止。"
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "事务超时"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "在缺省情况下,事务一直生存到被创建它的应用程序终止或发生故障。然而,我们有可以为每个事务设置一个超时时间(秒),这样如果事务在超时前还没有被终止的话,它将自动回滚。"
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr "在 <emphasis>TxCore</emphasis> 里,超时时间被作为 <classname>AtomicAction</classname> 构造函数的参数。如果其值为 <literal>AtomicAction.NO_TIMEOUT</literal>(缺省值),那么该事务将不会自动超时。而任何其他正值都将是事务的超时时间(以秒为单位)。零值将作为全局的缺省超时时间,它可由属性 <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> 提供。除非进行修改,缺省值是 60 秒。"
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"当某个顶层的事务用非零值超时时间创建时,如果它在指定的时间内没有完成的话,它将进行回滚。<emphasis>JBossTS</emphasis> 使用一个独立的 reaper 线程来监控所有本地创建的事务,并在超时后强迫它们回滚。要阻止这个线程消耗应用程序时间,它应该只定期地运行。缺省的检查间隔是 120000 毫秒,但你可以通过设置 <literal>com.arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> 属性来覆盖它。或者,如果 <literal>com.arjuna.ats.arjuna.coordinator."
+"txReaperMode</literal> 被设置为 <literal>DYNAMIC</literal>,reaper 线程将在任何事务超时时被唤醒。这种模式的优势是可以及早地终止事务,但也有可能得不停地调度 reaper 线程。"
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"如果为某个顶层事务指定了零值的超时时间(或未指定超时时间),<emphasis>JBossTS</emphasis> 将不会将任何超时时间强加于该事务上,也就是说,它将允许该事务无限期地运行。当使用 <emphasis>ArjunaCore</emphasis> 或 <emphasis>ArjunaJTS</emphasis> 时,你可以设置 <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> 来覆盖缺省超时时间,或是使用 <emphasis>ArjunaJTS</emphasis> 时设置 <literal>com."
+"arjuna.ats.jts.defaultTimeout</literal> 进行覆盖。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# translation of Chapter_04.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-30 15:42+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "提示和建议"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "一般建议"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "在构造函数里使用事务"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "在本手册的例子中,构造函数的实现里都使用了事务来创建新的持久性对象。我们是有意为之,因为这保证了对象状态正确传递到 Object Store 里。如之前提到的,有修改的持久性对象的状态只在顶层事务提交时才写入到 Object Store 里。因此,如果构造函数里的事务是顶层的且被提交,那么最近创建的对象都会被写入到 Object Store 里并马上可用。然而,如果构造函数里的事务提交了但却是嵌套的(因为在对象创建之前启动的某些其他事务仍在运行),那么相关状态只有在所有的父事务提交时才被写入。"
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "从另外一方面来说,如果构造函数没有使用事务,那么系统里的不一致性就可能增加。例如,如果在创建对象时没有活动的事务,它的状态将直到下次对象在某个事务里被修改时才会保存到 Object Store 里,。"
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "让我们看看这个简单的例子:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"这里是在顶层动作 A 的控制之外创建的两个对象。<literal>obj1</literal> 是一个新的对象;<literal>obj2</literal> 则是一现有的对象。当 <literal>obj2</"
+"literal> 的 remember 操作被调用时,它将被激活且记住 <literal>obj1</literal> 的 Uid。虽然这个提交 <literal>obj2</literal> 的持久状态的动作现在可以包含 <literal>obj1</"
+"literal> 的 UID,但 <literal>obj1</literal> 自己的状态还没有保存,因为它还没有被任何动作所操纵。实际上,除非之后它被应用程序的某个动作修改,它的状态永不会被保存。然而,如果构造函数已经使用了一个原子动作,<literal>obj1</literal> 的状态将在构建时自动保存且不会出现这样的不一致性。"
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "save_state 和 restore_state 的更多细节"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+"<emphasis>TxCore</emphasis> 可能在对象的生存期间的任何时候调用用户定义的 <command>save_state</"
+"command> 操作,包括在执行对象的构造函数(尤其是使用原子动作时)的主体时。因此,正确初始化 save_state 保存的所有变量是很重要的。"
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"当编写 <command>save_state</"
+"command> 和 <command>restore_state</command> 操作时需要小心确保没有启动任何事务(在操作里显性地启动或通过使用其他操作隐形地启动)。这个限制是由于 <emphasis>TxCore</emphasis> 可能把 <command>restore_state</"
+"command> 作为其提交过程的一部分来调用,从而导致了在一个事务的提交或中止阶段试图执行另外一个原子事务。这可能违背了被提交(中止)的事务的原子属性,因此不应该使用。"
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"为了支持持久性对象的崩溃恢复(Crash Recovery),你有必要让用户对象的所有 <literal>save_state</literal> 和 <literal>restore_state</literal> 方法调用 <command>super.save_state</command> 和 "
+"<command>super.restore_state</command>。"
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Packing Objects"
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"所有的 Java 基本类型(int、long 等)都可以使用 <classname>Input/OutputObjectState</"
+"classname> 提供的 pack(和 unpack)保存到和从 <classname>Input/OutputObjectState</classname> 实例中恢复。然而,对象的打包和解包应该进行不同的处理。这是因为对象打包会带来额外的别名问题,也就是两个不同的对象引用可能实际上指向的是同一个对象。例如:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "在这里,由于 s1 和 s2 都指向相同的字符串,<command>save_state</command> 实现可能会将其复制两次。从 <command>save_state</command> 的角度来说,这样的效率很低。然而,这会使 <command>restore_state</command> 出错,因为它会把两个字符串都解包到不同的内存区域而毁坏原始的别名信息。目前的 TxCore 版本将打包和解包不同的对象引用。"
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "直接使用 StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 "本手册的所有例子中的用户类都源自 <classname>LockManager</classname>。其原因是两方面的。首先,也是最重要的一点,这是原子动作的串行性限制所要求的;其次,它减少了对程序员干涉的需要。然而,如果只要求对 <emphasis>TxCore</emphasis> 的访问的持久性和恢复机制,用户了也可以直接继承 <classname>StateManager</classname>。"
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+"直接继承 <classname>StateManager</classname> 的类必须显性地利用其状态管理机制(这些通常由 <classname>LockManager</classname> 来承担)。从程序员的角度来看,既然 <classname>StateManager</"
+"classname> 的构造函数和 <classname>LockManager</classname> 的构造函数实际上是相等的,这就合适地利用了操作的激活、取消激活和修改。"
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr "<command>Activate</command> 从 Object Store 里加载了一个对象。这个对象的 UID 必须已经通过构造函数设置且对象必须存在于 Object Store 里。如果成功地读取了这个对象,那么   <command>restore_state</command> 将被调用来在内存里构建它。<command>Activate</command> 是幂等的(idempotent),所以对象一旦被激活,后续的调用将被忽略。这里的参数代表用于搜索对象的 Object Store 的根名称。Null 值表示使用缺省的 Object Store。"
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "它是激活的反操作。首先调用 <command>save_state</command> 来构建对象的压缩映像,然后将其保存在 Object Store 里。对象只有在激活后被修改过才能保存。这里的参数代表用于搜索对象的 Object Store 的根名称。Null 值表示使用缺省的 Object Store。"
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>必须</emphasis>在修改内存里的对象前被调用。如果它没有被调用,对象将不能通过 deactivate 保存在 Object Store 里。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1052 @@
+# translation of Chapter_05.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter_05\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-07-08 01:17+0000\n"
+"PO-Revision-Date: 2008-07-08 11:31+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "工具"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "本章介绍如何启动和使用工具框架以及可用的工具。"
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "启动事务服务工具"
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "启动事务服务工具的方法根据操作系统的不同而不同:"
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr "在启动菜单的“JBoss Transaction Service”程序组里双击“Start Tools”链接。"
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "启动一个 bash shell 并输入:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+"之后“Tools”窗口将出现。这是 <emphasis>JBoss Transaction Service</emphasis> 所"
+"附带的所有工具的启动区。在窗口的顶部,你将看到一个菜单条。这个菜单条有 4 个选"
+"项:"
+
+#. Tag: caption
+#: Chapter_05.xml:42
+#, no-c-format
+msgid "Menu bar"
+msgstr "菜单条"
+
+#. Tag: title
+#: Chapter_05.xml:46
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>File</guimenu></menuchoice> 菜单"
+
+#. Tag: para
+#: Chapter_05.xml:47 Chapter_05.xml:82 Chapter_05.xml:108 Chapter_05.xml:132
+#, no-c-format
+msgid "&nbsp;"
+msgstr "&nbsp;"
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Open JMX Browser"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr ""
+"这将显示 JMX 浏览器窗口(关于使用 JMX 浏览器的更多信息,请参考《使用 JMX 浏览"
+"器》)。"
+
+#. Tag: term
+#: Chapter_05.xml:63
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Open Object Store Browser"
+
+#. Tag: para
+#: Chapter_05.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+"这将显示 JBossTS Object Store 浏览器窗口(关于使用 Object Store 浏览器的更多"
+"信息,请参考《使用 Object Store 浏览器》)。"
+
+#. Tag: term
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "Settings"
+msgstr "Settings"
+
+#. Tag: para
+#: Chapter_05.xml:69
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "这个选项将打开“Setting”对话框,你可以配置不同的可用工具。"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Exit"
+msgstr "Exit"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "这将关闭“Tools”窗口并退出应用程序,任何未保存/确认的修改都会丢失。"
+
+#. Tag: title
+#: Chapter_05.xml:81
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>Performance</guimenu></menuchoice> 菜单"
+
+#. Tag: term
+#: Chapter_05.xml:93
+#, no-c-format
+msgid "Open"
+msgstr "Open"
+
+#. Tag: para
+#: Chapter_05.xml:94
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+"这将打开“performance”窗口 - 关于性能工具的更多信息,请参考 <xref linkend="
+"\"Performance_Tool\"/>。"
+
+#. Tag: term
+#: Chapter_05.xml:98
+#, no-c-format
+msgid "Close All"
+msgstr "Close All"
+
+#. Tag: para
+#: Chapter_05.xml:99
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"这将关闭当前所有打开的“performance”窗口 - 关于性能工具的更多信息,请参考 "
+"<xref linkend=\"Performance_Tool\"/>。"
+
+#. Tag: title
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>Window</guimenu></menuchoice> 菜单"
+
+#. Tag: term
+#: Chapter_05.xml:118
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Cascade Windows"
+
+#. Tag: para
+#: Chapter_05.xml:119
+#, no-c-format
+msgid ""
+"This arranges the windows in a diagonal line to you find a specific window."
+msgstr "这将把窗口按对角线排列,方便你查找所需的窗口。"
+
+#. Tag: term
+#: Chapter_05.xml:123
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:124
+#, no-c-format
+msgid ""
+"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 ""
+"对于当前每个可见的窗口,这里将出现一个额外的菜单选项。选择这个菜单选项将把相"
+"关联的窗口置于桌面上。"
+
+#. Tag: title
+#: Chapter_05.xml:131
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>Help</guimenu></menuchoice> 菜单"
+
+#. Tag: term
+#: Chapter_05.xml:142
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:143
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "这会显示包含产品信息的“About”窗口。"
+
+#. Tag: title
+#: Chapter_05.xml:153
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "使用性能工具"
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+"性能工具可以用来显示事务服务的性能方面的信息。这些信息是通过 Performance JMX "
+"bean 收集的,这表示事务服务需要集成到应用服务器里来提供任何性能方面的信息。"
+
+#. Tag: para
+#: Chapter_05.xml:157
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"性能信息通过 multi-series 图表显示。要查看这个图表,你只需简单地选择 "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice> 打开一"
+"个“performance”窗口就可以了。"
+
+#. Tag: para
+#: Chapter_05.xml:165
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "现在屏幕上的窗口包含了一个 multi-series 图表,它显示下面的信息:"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid "Number of transactions."
+msgstr "事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:175
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "提交的事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:180
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "中止的事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:185
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "嵌套的事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:190
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "heuristics raised 事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:195
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "只要在 Series 菜单里选择不同的选项,你就可以启用或关闭相应的系列。"
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid ""
+"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 ""
+"当某个系列被启用,它将显示在图表的底部的图例里。系列名称(例如所创建的事务)"
+"后面的颜色就是代表该类数据的线条的颜色。"
+
+#. Tag: para
+#: Chapter_05.xml:211
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "图表里显示的数据是针对时间的。Y 轴代表事务的数量而 X 轴代表时间。"
+
+#. Tag: para
+#: Chapter_05.xml:214
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+"在任何时候,数据抽样都可以用 <menuchoice><guimenu>Sampling</guimenu></"
+"menuchoice> 菜单来停止和重启,当前图表上可见的数据可以通过 "
+"<menuchoice><guimenu>Data</guimenu></menuchoice> 菜单里的 "
+"<menuchoice><guimenu>Save to .csv</guimenu></menuchoice> 菜单选项保存到一个可"
+"输出到电子表格程序里的 Comma Separate Values (CSV) 文件。"
+
+#. Tag: title
+#: Chapter_05.xml:219
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "使用 JXM 浏览器"
+
+#. Tag: para
+#: Chapter_05.xml:220
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"要打开 JMX 浏览器窗口,你可以点击 <menuchoice><guimenu>File</guimenu></"
+"menuchoice> 菜单并选择 <menuchoice><guimenu>Open JMX Browser</guimenu></"
+"menuchoice> 选项。然后 JMX 浏览器窗口就会显示。"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+"这个窗口由两个主要部分组成:Details 面板和 MBean 面板。MBean 面板显示 MBean "
+"服务所开放的 MBean。它们通过域名分组。Details 面板显示当前所选择的 MBean 的信"
+"息。要选择某个 MBean,只要用鼠标点击它使其高亮显示就可以了。Details 面板显示"
+"的信息如下:"
+
+#. Tag: para
+#: Chapter_05.xml:233
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "在这个服务器里注册的 MBean 的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:238
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "这个 MBean 开放的构造函数的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:243
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "这个 MBean 开放的属性的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:248
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "这个 MBean 开放的操作的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:253
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "这个 MBean 开放的通知的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "对这个 MBean 的简短描述。"
+
+#. Tag: para
+#: Chapter_05.xml:263
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+"这里也有一个 <menuchoice><guimenu>View</guimenu></menuchoice> 链接,点击它将"
+"显示这个 MBean 开放的属性和操作。在这里你可以查看可读的属性、修改可写的属性并"
+"调用操作。"
+
+#. Tag: caption
+#: Chapter_05.xml:270
+#, no-c-format
+msgid "An example of what the details panel displays"
+msgstr "Details 面板显示的例子"
+
+#. Tag: title
+#: Chapter_05.xml:273
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "使用属性和操作"
+
+#. Tag: para
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+"当点击 <menuchoice><guimenu>View</guimenu></menuchoice> 链接时,“View JMX "
+"Attributes and Operations”窗口将显示。在这里你可以查看所选择的 MBean 开放的所"
+"有可读属性。你也可以修改可写属性。如果某个属性是只读的,你将不能修改其属性"
+"值。要修改某个属性值,你只需双击当前值并输入新的值就可以了。如果启用"
+"了“<guibutton>...</guibutton>”按钮,你就可以点击它来查看更合适的编辑方法。如"
+"果这个属性的类型是 JMX 对象名,点击这个按钮将显示该对象的 JMX 属性和操作。"
+
+#. Tag: para
+#: Chapter_05.xml:277
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 ""
+"在任何时候你都可以点击“<guibutton>Refresh</guibutton>”按钮来刷新属性值。在获"
+"取属性值时如果发生了异常,这个异常将被显示来替代属性值。"
+
+#. Tag: para
+#: Chapter_05.xml:280
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+"你也可以调用 MBean 的操作。MBean 开放的操作显示在属性列表下面。要调用某个操"
+"作,只要简单地从列表里选择它并点击“<guibutton>Invoke</guibutton>”按钮。如果这"
+"个操作要求输入参数,另外一个窗口将出现,你必须指定每个必需参数的值。你可以用"
+"和指定 JMX 属性值相同的方法来指定参数值。在指定了参数值后,你可以点"
+"击“<guibutton>Invoke</guibutton>”按钮来执行该操作。"
+
+#. Tag: para
+#: Chapter_05.xml:283
+#, no-c-format
+msgid ""
+"Once the method invocation has completed its return value will be displayed."
+msgstr "方法调用完毕后,它的返回值将被显示。"
+
+#. Tag: caption
+#: Chapter_05.xml:290
+#, no-c-format
+msgid "View JMX Attributes and Operations window"
+msgstr "查看 JMX Attributes and Operations 窗口"
+
+#. Tag: caption
+#: Chapter_05.xml:296
+#, no-c-format
+msgid "Invoke Operation Parameters"
+msgstr "调用操作的参数"
+
+#. Tag: title
+#: Chapter_05.xml:300
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "使用 Object Store 浏览器"
+
+#. Tag: para
+#: Chapter_05.xml:301
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+"要打开 Object Store browser 窗口,你可以点击 <menuchoice><guimenu>File</"
+"guimenu></menuchoice> 菜单并选择 <menuchoice><guimenu>Open Object Store "
+"Browser</guimenu></menuchoice> 选项。然后 Object Store browser 窗口将出现。"
+
+#. Tag: para
+#: Chapter_05.xml:309
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "object store browser 窗口分成 4 个部分:"
+
+#. Tag: para
+#: Chapter_05.xml:319
+#, no-c-format
+msgid ""
+"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 ""
+"Object Store Roots - 这是当前可用 Object Store 根的列表。从这个列表里进行选"
+"择将重新构成所选根的内容的层次结构。"
+
+#. Tag: para
+#: Chapter_05.xml:324
+#, no-c-format
+msgid ""
+"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 ""
+"Object Store Hierarchy – 这是表示当前 Object Store 层次结构的树。从这个树里选"
+"择一个节点将显示它存储的对象。"
+
+#. Tag: para
+#: Chapter_05.xml:329
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objects – 这是一个图标列表,它代表存储在所选位置的对象。"
+
+#. Tag: para
+#: Chapter_05.xml:334
+#, no-c-format
+msgid ""
+"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 ""
+"Object Details – 它显示当前所选的对象的信息(只有这个对象的类型为状态查看器库"
+"所知时才适用,请参考《Writing an OSV》里关于如何编写对象状态查看器里的信息)"
+
+#. Tag: title
+#: Chapter_05.xml:341
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "对象状态查看器(Object State Viewer,OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:342
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+"当主窗口的 Objects 面板里的对象被选择时,用于该对象的已注册对象状态查看器"
+"(Object State Viewer,或 OSV)将被调用。OSV 的任务是通过用户界面使用户可以获"
+"得所选对象的信息。随标准工具一起发布的有用于原子动作的 OSV,它在不同的列表里"
+"(如 heuristic、failed、read-only等)显示抽象记录(Abstract Record)信息。你"
+"也可以编写自己的 OSV 来显示自定义的对象类型的信息。后面我们将涵盖这方面的内"
+"容。"
+
+#. Tag: title
+#: Chapter_05.xml:346
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "编写 OSV"
+
+#. Tag: para
+#: Chapter_05.xml:347
+#, no-c-format
+msgid ""
+"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 ""
+"编写 OSV 插件允许你扩展 Object Store 浏览器的能力来显示用户自定义的抽象记录"
+"(Abstract Record)的状态。OSV 插件其实只是实现下面接口的类:"
+
+#. Tag: code
+#: Chapter_05.xml:352
+#, no-c-format
+msgid ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:354
+#, no-c-format
+msgid ""
+"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 ""
+"它必须打包在 plugins 目录里的某个 JAR 里。这个例子展示了如何创建一个用于如下"
+"的抽象记录(Abstract Record)子类的 OSV 插件:"
+
+#. Tag: screen
+#: Chapter_05.xml:357
+#, no-c-format
+msgid ""
+"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"
+"}"
+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:358
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+"当用 Object Store 浏览器查看这个抽象记录时,查看当前值是个不错的主意。我们可"
+"以把状态读入绝对记录的实例并调用 <methodname>getValue()</methodname>。下面是 "
+"Object Store 浏览器插件的源代码:"
+
+#. Tag: screen
+#: Chapter_05.xml:361
+#, no-c-format
+msgid ""
+"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"
+"}"
+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:362
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+"当在 Object Store 层次结构树里展开代表给定类型的 UID(Unique Identification)"
+"时,<methodname>uidNodeExpanded</methodname> 方法将被调用。这个插件不要求这"
+"样,因为绝对记录并不在 Object Store 里直接可见,它只有通过某个原子动作里的列"
+"表才可见。当从代表给定类型的对象视图里选择一个条目时,"
+"<methodname>entrySelected</methodname> 方法将被调用。在这两个方法里,"
+"StatePanel 都被用来显示对象状态的信息。StatePanel 具有如下的有助这些信息显示"
+"的方法:"
+
+#. Tag: para
+#: Chapter_05.xml:367
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>:这个方法可以用来显示一般信息。"
+
+#. Tag: para
+#: Chapter_05.xml:372
+#, no-c-format
+msgid ""
+"<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 ""
+"<methodname>setData(String name, String value)</methodname>:这个方法用来把信"
+"息放入 Object Store 浏览器工具显示的表里。"
+
+#. Tag: para
+#: Chapter_05.xml:377
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>:这个方法用来启用 Details 按钮。Listener 接口允许按钮被按下时通知"
+"插件。怎样显示进一步的信息可由插件开发人员来决定。"
+
+#. Tag: para
+#: Chapter_05.xml:382
+#, no-c-format
+msgid ""
+"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 ""
+"在这个例子里,我们从 Object Store 里读取状态并使用 getValue() 返回的值来把一"
+"个条目放入 StatePanel 表。getType() 方法返回这个插件用来注册的类型。"
+
+#. Tag: para
+#: Chapter_05.xml:385
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"要把这个插件添加到 Object Store 浏览器里,我们有必要把它打包至一个 JAR 文件"
+"里,其名称前缀为 'osbv-'。这个 JAR 文件必须包含 manifest 文件里的某些信息,这"
+"样 Object Store 浏览器就知道哪些类是插件。所有这些都可以用 <ulink url="
+"\"http://ant.apache.org\">Apache ANT</ulink> 脚本来执行,如:"
+
+#. Tag: screen
+#: Chapter_05.xml:388
+#, no-c-format
+msgid ""
+"&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;"
+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:389
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"用 manifest 文件里的正确信息创建了 JAR 文件后,我们需要把它放入 "
+"<emphasis>bin/tools/plugins</emphasis> 目录里。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,872 @@
+# translation of Chapter_06.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-30 10:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "构建用于 Java 应用程序的事务性对象"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "应用程序构建"
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "开发 TxCore 应用程序分为两个不同的阶段:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "采用某些特征(如:持久的、可恢复的、并行控制)开发新的类。"
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "开发利用新类的应用程序。"
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+"虽然这两个阶段可以由同一个人同时进行,但我们宁愿把第一个步骤分配给类开发人员而把第二个分配给应用程序开发人员。类开发人员将关心如何定义合适的 <code>save_state</code> 和 "
+"<code>restore_state</code> 操作、为操作设置合适的锁以及调用合适的 TxCode 类构造函数。应用程序开发人员则更关心定义应用程序的通用结构,尤其是关于原子动作(atomic action)的使用。"
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "本章将通过一个简单例子解释前面提及的内容,我们将开发一个简单的使用整形值的 FIFO Queue 类。队列的实现将使用一个双重链表的结构,且将作为单个对象来实现。我们将在整个手册里使用这个例子来帮助解释 TxCore 提供的不同机制。虽然这只是一个不实用的例程,但你不需要对程序代码有很深的知识就可以通过它了解所有的 TxCore 修改。"
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "在本章的剩余部分我们将假定这个程序是非分布式的。否则上下文信息必须显性或隐形地传递。"
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "队列描述"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "这个队列是一个传统的 FIFO 对列,元素被加入到前面并从后面进行删除。队列类提供的操作允许往队列里放入值(enqueue)并可以从中进行删除(dequeue),而且可以修改或查看队列里的值。在这个例子里,我们使用一个数组来代表队列。在这个例子里,我们将限制最大元素个数为 <code>QUEUE_SIZE</code>。"
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "这个简单的队列类的 Java 接口定义如下:"
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "构造函数和构析函数 "
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "如之前章节所述,要使用一个现有的持久性对象,你需要使用特殊的构造函数来获取持久性对象的 UID;下面是一个这样的构造函数实现:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "创建新的持久性对象的构造函数是相似的:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 "在新对象的构造函数里使用原子动作(atomic action)遵循了之前描述的准则,这也确保了当合适的顶层原子动作提交时(也可以是动作 A 或者 <code>TransactionalQueue</code> 构造时活动的某个封装的动作),对象的状态将被写入到 Object Store。在构造函数里使用原子动作很简单:动作首先必须被声明并调用 begin 操作;操作然后必须为对象设置合适的锁(在这个例子里需要 <code>WRITE</code> 锁),最后再执行构造函数的主体。如果这个过程成功完成的话,原子动作将被提交,否则会被中止。"
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "这个 Queue 类的构析函数只需要调用 <methodname>LockManager</methodname> 的 terminate 操作。"
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state、resotre_state 和 type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "这个例子的 save_state 和 restore_state 的实现相对简单:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"因为 Queue 类源自 <classname>LockManager</"
+"classname> 类,所以 type 操作应该为:"
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "enqueue/dequeue 操作"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "如果把 Queue 类的操作编写为原子动作,enqueue 操作可以具有下面的结构(dequeue 操作的结构将很类似):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "下面是 <methodname>queueSize</methodname> 的实现:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "inspectValue/setValue 操作"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr "下面是 <methodname>inspectValue</methodname> 的实现。这里没有列出类似的 <methodname>setValue</methodname>。"
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "客户端"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "我们不会展示所有的客户端代码,我们将专注于具有代表性的部分。在调用对象的操作之前,显然客户端必须首先绑定该对象。在本地调用的情况下,这只需要客户端简单地创建该对象的实例就可以了。"
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr "在调用队列的某个操作之前,客户端可以启动一个事务。下面是 <methodname>queueSize</methodname> 操作:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "注释"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "既然 Queue 对象是持久的,那么不管它所在的节点发生什么故障,它的状态都可以继续生存。这个状态由最后提交的顶层原子动作来产生。如果应用程序的目的是执行两个原子的 enqueue 操作,这可以通过把一个 enqueue 操作嵌套在另外一个里来实现。此外,这样的持久性对象上的并行操作将被序列化,因此防止了对象状态的不一致性。然而,既然 Queue 对象的元素并不是被独立地并行控制的,某些并行操作调用的组合将被串行地执行,而从逻辑上来将它们可以是并行运行的。例如修改队列里的两个不同元素的状态。在下一节,我们将解决其中的一些问题。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+# translation of Chapter_07.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-26 15:21+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "配置选项"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "选项"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "下表展示了配置特征,斜体字表示缺省值。每个选项的更多细节可以要在本文档的相关部分找到。"
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "TxCore 配置选项。"
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "配置名称"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "可能的取值"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "描述"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "启用或关闭 Object Store 的同步。请小心使用本选项。"
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "指定使用的 Object Store 实现的类型。"
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/任何整型值"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "设置 HasehdStore Object Store 实现的 hash 对象状态的目录数。"
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "指定所使用的 Lock Store 实现的类型。"
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "指定 Lock Store 的位置。"
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "应用程序可以写入的任何位置。"
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "指定 Object Store 的位置。"
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "指定 Object Store 的根名称。"
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "使用的事务日志实现。"
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "启用/关闭(缺省)异步提交。"
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "启用/关闭(缺省)异步 prepare。"
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "JDBCAccess 类名"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "用于用户级的 Object Store 的 JDBCAccess 实现。"
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "用于事务 Object Store 的 JDBCAccess 实现。"
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "启用/禁用一阶段的提交优化。"
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "启用/禁用用于第二阶段终止的只读优化。"
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "启动/停止收集事务统计信息。"
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+"启动时启用或禁用事务系统。用 com."
+"arjuna.ats.arjuna.coordinator.TxControl 类进行切换。"
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "æ•´åž‹"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "超时时间(毫秒)"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Programmers_Guide/zh-CN/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+#Makefile for Transactions_Failure_Recovery_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= de-DE fr-FR es-ES ja-JP pt-BR zh-CN
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,745 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager">
+	<title>Architecture of the Recovery Manager</title>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Crash_Recovery_Overview">
+		<title>Crash Recovery Overview</title>
+		<para>
+			The main architectural components within Crash Recovery are illustrated in the diagram below:
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Crash_Recovery_Architecture.png" format="PNG" />
+			</imageobject>
+		</mediaobject>
+		<para>
+			The Recovery Manager is a daemon process responsible for performing crash recovery. Only one Recovery Manager runs per node. The Object Store provides persistent data storage for transactions to log data. During normal transaction processing each transaction will log persistent data needed for the commit phase to the Object Store. On successfully committing a transaction this data is removed, however if the transaction fails then this data remains within the Object Store.
+		</para>
+		<para>
+			The Recovery Manager functions by:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Periodically scanning the Object Store for transactions that may have failed. Failed transactions are indicated by the presence of log data after a period of time that the transaction would have normally been expected to finish.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Checking with the application process which originated the transaction whether the transaction is still in progress or not.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Recovering the transaction by re-activating the transaction and then replaying phase two of the commit protocol.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The following sections describe the architectural components in more detail
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Recovery_Manager">
+		<title>Recovery Manager</title>
+		<para>
+			On initialization the Recovery Manager first loads in configuration information via a properties file. This configuration includes a number of recovery activators and recovery modules, which are then dynamically loaded.
+		</para>
+		<para>
+			Since the version 3.0 of JBossTS, the Recovery Manager is not specifically tied to an Object Request Broker or ORB. Hence, the OTS recovery protocol is not implicitly enabled. To enable such protocol, we use the concept of recovery activator, defined with the interface <interfacename>RecoveryActivator</interfacename>, which is used to instantiate a recovery class related to the underlying communication protocol. For instance, when used with OTS, the <interfacename>RecoveryActivitor</interfacename> has the responsibility to create a RecoveryCoordinator object able to respond to the replay_completion operation.
+		</para>
+		<para>
+			All <interfacename>RecoveryActivator</interfacename> instances inherit the same interface. They are loaded via the following recovery extension property:
+		</para>
+<screen>
+&lt;property  
+		   name="com.arjuna.ats.arjuna.recovery.recoveryActivator_&lt;number&gt;" value="RecoveryClass" /&gt;
+</screen>
+		<para>
+			For instance the <interfacename>RecoveryActivator</interfacename> provided in the distribution of JTS/OTS, which shall not be commented, is as follow:
+		</para>
+<screen>
+&lt;property 
+	name="com.arjuna.ats.arjuna.recovery.recoveryActivator_1" value="com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;
+</screen>
+		<para>
+			When loaded all <interfacename>RecoveryActivator</interfacename> instances provide the method <methodname>startRCservice</methodname> invoked by the Recovery Manager and used to create the appropriate Recovery Component able to receive recovery requests according to a particular transaction protocol. For instance the RecoveryCoordinator defined by the OTS protocol.
+		</para>
+		<para>
+			Each recovery module is used to recover a different type of transaction/resource, however each recovery module inherits the same basic behavior.
+		</para>
+		<para>
+			Recovery consists of two separate passes/phases separated by two timeout periods. The first pass examines the object store for potentially failed transactions; the second pass performs crash recovery on failed transactions. The timeout between the first and second pass is known as the backoff period. The timeout between the end of the second pass and the start of the first pass is the recovery period. The recovery period is larger than the backoff period.
+		</para>
+		<para>
+			The Recovery Manager invokes the first pass upon each recovery module, applies the backoff period timeout, invokes the second pass upon each recovery module and finally applies the recovery period timeout before restarting the first pass again.
+		</para>
+		<para>
+			The recovery modules are loaded via the following recovery extension property:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;RecoveryClass&gt;
+</screen>
+		<para>
+			The backoff period and recovery period are set using the following properties:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod	(default 10 secs)
+com.arjuna.ats.arjuna.recovery.periodicRecovery		(default 120 secs)
+</screen>
+		<para>
+			The following java classes are used to implement the Recovery Manager:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					package <package>com.arjuna.ats.arjuna.recovery</package>:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							RecoveryManager: The daemon process that starts up by instantiating an instance of the RecoveryManagerImple class.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecoveryEnvironment: Properties used by the recovery manager.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecoveryConfiguration: Specifies the name of the Recovery Manager property file. (for instance, RecoveryManager-properties.xml)
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							RecoveryManagerImple: Creates and starts instances of the RecActivatorLoader, the PeriodicRecovery thread and the ExpiryEntryMonitor thread.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecActivatorLoader: Dynamically loads in the RecoveryActivator specified in the Recovery Manager property file. Each RecoveryActicator is specified as a recovery extension in the properties file.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							PeriodicRecovery: Thread which loads each recovery module, then calls the first pass method for each module, applies the backoff period timeout, calls the second pass method for each module and applies the recovery period timeout.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecoveryClassLoader: Dynamically loads in the recovery modules specified in the Recovery Manager property file. Each module is specified as a recovery extension in the properties file (for instance, com.arjuna.ats.arjuna.recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule).
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				By default, the recovery manager listens on the first available port on a given machine. If you wish to control the port number that it uses, you can specify this using the com.arjuna.ats.arjuna.recovery.recoveryPort attribute.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-Embedding_the_Recovery_Manager">
+			<title>Embedding the Recovery Manager</title>
+			<para>
+				In some situations it may be required to embed the RecoveryManager in the same process as the transaction service. In this case you can create an instance of the RecoveryManager through the manager method on com.arjuna.ats.arjuna.recovery.RecoveryManager. A RecoveryManager can be created in one of two modes, selected via the parameter to the manager method:
+			</para>
+		</formalpara>
+		<orderedlist>
+			<listitem>
+				<para>
+					INDIRECT_MANAGEMENT: the manager runs periodically but can also be instructed to run when desired via the scan operation or through the RecoveryDriver class to be described below.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DIRECT_MANAGEMENT: the manager does not run periodically and must be driven directly via the scan operation or RecoveryDriver.
+				</para>
+			</listitem>
+		</orderedlist>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-Managing_recovery_directly">
+			<title>Managing recovery directly</title>
+			<para>
+				As already mentioned, recovery typically happens at periodic intervals. If you require to drive recovery directly, then there are two options, depending upon how the RecoveryManager has been created.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-Seperate_Recovery_Manager">
+			<title>Seperate Recovery Manager</title>
+			<para>
+				You can either use the com.arjuna.ats.arjuna.tools.RecoveryMonitor program to send a message to the Recovery Manager instructing it to perform recovery, or you can create an instance of the com.arjuna.ats.arjuna.recovery.RecoveryDriver class to do likewise. There are two types of recovery scan available:
+			</para>
+		</formalpara>
+		<orderedlist>
+			<listitem>
+				<para>
+					ASYNC_SCAN: here a message is sent to the RecoveryManager to instruct it to perform recovery, but the response returns before recovery has completed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					SYNC: here a message is sent to the RecoveryManager to instruct it to perform recovery, and the response occurs only when recovery has completed.
+				</para>
+			</listitem>
+		</orderedlist>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-In_process_Recovery_Manager">
+			<title>In process Recovery Manager</title>
+			<para>
+				You can invoke the scan operation on the RecoveryManager. This operation returns only when recovery has completed. However, if you wish to have an asynchronous interaction pattern, then the RecoveryScan interface is provided:
+			</para>
+		</formalpara>
+<screen>
+public interface RecoveryScan
+{
+	public void completed ();
+}
+</screen>
+		<para>
+			An instance of an object supporting this interface can be passed to the scan operation and its completed method will be called when recovery finishes. The scan operation returns immediately, however.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Recovery_Modules">
+		<title>Recovery Modules</title>
+		<para>
+			As stated before each recovery module is used to recover a different type of transaction/resource, but each recovery module must implement the following RecoveryModule interface, which defines two methods: <methodname>periodicWorkFirstPass</methodname> and <methodname>periodicWorkSecondPass</methodname> invoked by the Recovery Manager.
+		</para>
+<screen>
+public interface RecoveryModule
+{
+	/**
+	* Called by the RecoveryManager at start up, and then
+	* PERIODIC_RECOVERY_PERIOD seconds after the completion, for all   
+	* RecoveryModules of the second pass
+	*/
+	public void periodicWorkFirstPass ();
+	
+	/**
+	* Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds
+	* after the completion of the first pass
+	*/
+	public void periodicWorkSecondPass ();
+}
+</screen>
+	<formalpara>
+		<title>JBossTS Recovery Module Classes</title>
+		<para>
+			JBossTS provides a set of recovery modules that are responsible to manage recovery according to the nature of the participant and its position in a transactional tree. The provided classes (that all implements the <interfacename>RecoveryModule</interfacename> interface) are:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</title>
+				<para>
+					Recovers AtomicAction transactions. 
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</title>
+				<para>
+					Recovers Transactional Objects for Java.
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule</title>
+				<para>
+					Recovers JTS Transactions. This is a generic class from which TopLevel and Server transaction recovery modules inherit, respectively 
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule</title>
+				<para>
+					Recovers JTS Toplevel Transactions.
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule</title>
+				<para>
+					Recovers JTS Server Transactions.
+				</para>
+			</formalpara>
+		</listitem>
+	</itemizedlist>
+	<para>
+		To illustrate the behavior of a recovery module, the following pseudo code describes the basic algorithm used for Atomic Action transactions and Transactional Objects for java.
+	</para>
+	<formalpara>
+		<title>AtomicAction pseudo code</title>
+		<para>
+			First Pass:
+		</para>
+	</formalpara>
+<screen>
+&lt; create a transaction vector for transaction Uids. &gt;
+&lt; read in all transactions for a transaction type AtomicAction. &gt;
+while &lt; there are transactions in the vector of transactions. &gt;
+do
+	&lt; add the transaction to the vector of transactions. &gt;
+end while.	
+</screen>
+	<para>
+		Second Pass:
+	</para>
+<screen>
+while &lt; there are transactions in the transaction vector &gt;
+do
+	if &lt; the intention list for the transaction still exists &gt;
+	then
+		&lt; create new transaction cached item &gt;
+		&lt; obtain the status of the transaction &gt;
+					
+		if 	&lt; the transaction is not in progress &gt;
+		then
+			&lt; replay phase two of the commit protocol &gt;
+		endif.
+	endif.
+end while.
+</screen>
+	<formalpara>
+		<title>Transactional Object pseudo code</title>
+		<para>First Pass</para>
+	</formalpara>
+<screen>
+&lt; Create a hash table for uncommitted transactional objects. &gt;
+&lt; Read in all transactional objects within the object store. &gt;
+while &lt; there are transactional objects &gt;
+do
+	if 	&lt; the transactional object has an Uncommited status in the object store &gt;
+	then
+		&lt; add the transactional Object o the hash table for uncommitted transactional objects&gt;
+	end if.
+end while.
+</screen>
+	<para>
+		Second Pass:
+	</para>
+<screen>
+while &lt; there are transactions in the hash table for uncommitted transactional objects &gt;
+do
+	if &lt; the transaction is still in the Uncommitted state &gt;
+	then
+		if &lt; the transaction is not in the Transaction Cache &gt;
+		then
+			&lt; check the status of the transaction with the original application process &gt;
+			if &lt; the status is Rolled Back or the application process is inactive &gt;
+				&lt; rollback the transaction by removing the Uncommitted status from the Object Store &gt;
+			endif.
+		endif.
+	endif.
+end while.
+</screen>
+	<formalpara>
+		<title>A Recovery Module for XA Resources</title>
+		<para>
+			To manage recovery, we have seen in the previous chapter that the Recovery Manager triggers a recovery process by calling a set of recovery modules that implements the two methods defined by the <interfacename>RecoveryModule</interfacename> interface. 
+		</para>
+	</formalpara>
+	<para>
+		To enable recovery of participants controlled via the <interfacename>XA</interfacename> interface, a specific recovery module named XARecoveryModule is provided. The XARecoveryModule, defined in the packages <package>com.arjuna.ats.internal.jta.recovery.arjunacore</package> and <package>com.arjuna.ats.internal.jta.recovery.jts</package>, handles recovery of <interfacename>XA</interfacename> resources (for example, databases) used in JTA.
+	</para>
+	<note>
+		<para>
+			JBossTS supports two JTA implementations: a purely local version (no distributed transactions) and a version layered on the JTS. Recovery for the former is straightforward. In the following discussion we shall implicitly consider on the JTS implementation.
+		</para>
+	</note>
+	<para>
+		Its behavior consists of two aspects: <emphasis>transaction-initiated</emphasis> and <emphasis>resource-initiated</emphasis> recovery. Transaction-initiated recovery is possible where the particular transaction branch had progressed far enough for a JTA Resource Record to be written in the ObjectStore, as illustrated in Figure 2.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/ObjectStore.png" format="PNG" />
+		</imageobject>
+		<caption> JTA/JDBC information stored in the ObjectStore</caption>
+	</mediaobject>
+		<para>
+			A JTA Resource record contains the information needed to link the transaction, as known to the rest of JBossTS, to the database. Resource-initiated recovery is necessary for branches where a failure occurred after the database had made a persistent record of the transaction, but before the JTA ResourceRecord was persisted.  Resource-initiated recovery is also necessary for datasources for which it is not possible to hold information in the JTA Resource record that allows the recreation in the RecoveryManager of the XAConnection/XAResource that was used in the original application.
+		</para>
+		<note>
+			<para>
+				When running XA recovery it is necessary to tell JBossTS which types of Xid it can recover. Each Xid that JBossTS creates has a unique node identifier encoded within it and JBossTS will only recover transactions and states that match a specified node identifier. The node identifier to use should be provided to JBossTS via a property that starts with the name <property>com.arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A value of ‘*’ will force JBossTS to recover (and possibly rollback) all transactions irrespective of their node identifier and should be used with caution. The contents of <property>com.arjuna.ats.jta.xaRecoveryNode</property> should be alphanumeric and match the values of <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property>.
+			</para>
+		</note>
+		<para>
+			Transaction-initiated recovery is automatic. The XARecoveryModule finds the JTA Resource Record that need recovery, then uses the normal recovery mechanisms to find the status of the transaction it was involved in (i.e., it calls replay_completion on the RecoveryCoordinator for the transaction branch), (re)creates the appropriate XAResource and issues commit or rollback on it as appropriate. The XAResource creation will use the same information, database name, username, password etc., as the original application.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Recovery.png" format="PNG" />
+			</imageobject>
+			<caption>Transaction-Initiated Recovery and XA Recovery</caption>
+		</mediaobject>
+		<para>
+			Resource-initiated recovery has to be specifically configured, by supplying the Recovery Manager with the appropriate information for it to interrogate all the databases (XADataSources) that have been accessed by any JBossTS application. The access to each XADataSource is handled by a class that implements the <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</interfacename> interface, as illustrated in Figure 4. Instances of classes that implements the XAResourceRecovery interface are dynamically loaded, as controlled by properties with names beginning <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Resource-Initiated_Recovery.png" format="PNG" />
+			</imageobject>
+			<caption>Resource-initiated recovery and XA Recovery</caption>
+		</mediaobject>
+		<note>
+			<para>
+				JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. Although the old interface still exists at the moment, users are encouraged to migrate to the new interface.
+			</para>
+		</note>
+		<para>
+			The XARecoveryModule will use the XAResourceRecovery implementation to get a XAResource to the target datasource. On each invocation of periodicWorkSecondPass, the recovery module will issue an XAResource.recover request – this will (as described in the XA specification) return a list of the transaction identifiers (Xid’s) that are known to the datasource and are in an indeterminate (in-doubt) state. The list of these in-doubt Xid’s received on successive passes (i.e. periodicWorkSecondPass-es) is compared. Any Xid that appears in both lists, and for which no JTA ResourceRecord was found by the intervening transaction-initiated recovery is assumed to belong to a transaction that was involved in a crash before any JTA ResourceRecord was written, and a rollback is issued for that transaction on the XAResource.
+		</para>
+		<para>
+			This double-scan mechanism is used because it is possible the Xid was obtained from the datasource just as the original application process was about to create the corresponding JTA_ResourceRecord. The interval between the scans should allow time for the record to be written unless the application crashes (and if it does, rollback is the right answer).
+		</para>
+		<para>
+			An <classname>XAResourceRecovery</classname> implementation class can be written to contain all the information needed to perform recovery to some datasource. Alternatively, a single class can handle multiple datasources. The constructor of the implementation class must have an empty parameter list (because it is loaded dynamically), but the interface includes an initialise method which passes in further information as a string. The content of the string is taken from the property value that provides the class name: everything after the first semi-colon is passed as the value of the string. The use made of this string is determined by the <classname>XAResourceRecovery</classname> implementation class.
+		</para>
+		<para>
+			For further details on the way to implement a class that implements the interface <interfacename>XAResourceRecovery</interfacename>, read the JDBC chapter of the JTA Programming Guide. An implementation class is provided that supports resource-initiated recovery for any XADataSource. This class could be used as a template to build your own implementation class. 
+		</para>
+		<formalpara>
+			<title>Writing a Recovery Module</title>
+			<para>In order to recover from failure, we have seen that the Recovery Manager contacts recovery modules by invoking periodically the methods <methodname>periodicWorkFirstPass</methodname> and <methodname>periodicWorkSecondPass</methodname>. Each Recovery Module is then able to manage recovery according to the type of resources that need to be recovered. The JBoss Transaction product is shipped with a set of recovery modules (TOReceveryModule, XARecoveryModule…), but it is possible for a user to define their own recovery module to fit their application. The following basic example illustrates the steps needed to build such recovery module</para>
+		</formalpara>
+		<formalpara>
+			<title>A basic scenario</title>
+			<para>This basic example does not aim to present a complete process to recover from failure, but mainly to illustrate the way to implement a recovery module. </para>
+		</formalpara>
+		<para>
+			The application used here consists to create an atomic transaction, to register a participant within the created transaction and finally to terminate it either by commit or abort. A set of arguments are provided:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					to decide to commit or abort the transaction,
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					to decide generating a crash during the commitment process.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The code of the main class that control the application is given below
+		</para>
+<screen>
+package com.arjuna.demo.recoverymodule;
+	
+import com.arjuna.ats.arjuna.AtomicAction;
+import com.arjuna.ats.arjuna.coordinator.*;
+	
+public class TestRecoveryModule
+{
+	public static void main(String args[])
+	{
+		try 
+		{
+			AtomicAction tx = new AtomicAction();
+			tx.begin(); // Top level begin
+	
+			// enlist the participant 
+			tx.add(SimpleRecord.create());
+	
+			System.out.println("About to complete the transaction ");
+			for (int i = 0; i &lt; args.length; i++)
+			{
+				if ((args[i].compareTo("-commit") == 0))
+				_commit = true;
+				if ((args[i].compareTo("-rollback") == 0))
+				_commit = false;
+				if ((args[i].compareTo("-crash") == 0))
+				_crash = true;
+			}
+			if (_commit)
+				tx.commit();  // Top level commit
+			else 
+				tx.abort();  // Top level rollback
+			} catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+	protected static boolean _commit = true;
+	protected static boolean _crash = false;
+}
+</screen>
+	<para>
+		The registered participant has the following behavior:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				During the prepare phase, it writes a simple message - <emphasis>I’m prepared</emphasis>- on the disk such The message is written in a well known file.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				During the commit phase, it writes another message - <emphasis>I’m committed</emphasis>- in the same file used during prepare.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If it receives an abort message, it removes from the disk the file used for prepare if any.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If a crash has been decided for the test, then it crashes during the commit phase – the file remains with the message <emphasis>I’m prepared</emphasis>.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		The main portion of the code illustrating such behavior is described hereafter.
+	</para>
+	<note>
+		<para>
+			The location of the file given in variable filename can be changed
+		</para>
+	</note>
+<screen>
+package com.arjuna.demo.recoverymodule;
+	
+import com.arjuna.ats.arjuna.coordinator.*;
+import java.io.File;
+	
+public class SimpleRecord extends AbstractRecord {
+	public String filename = "c:/tmp/RecordState";
+	public SimpleRecord() {
+		System.out.println("Creating new resource");
+	}
+	
+	public static AbstractRecord create()
+	{
+		return new SimpleRecord() ;
+	}
+	
+	public int topLevelAbort()
+	{
+		try {
+			File fd = new File(filename);
+			if (fd.exists()){
+				if (fd.delete())
+					System.out.println("File Deleted");
+			}
+	}
+	catch(Exception ex){…}
+		return TwoPhaseOutcome.FINISH_OK;
+	}
+	
+	public int topLevelCommit()
+	{
+		if (TestRecoveryModule._crash)
+			System.exit(0);
+		try  {
+			java.io.FileOutputStream file = new    
+				java.io.FileOutputStream(filename);
+			java.io.PrintStream pfile = new java.io.PrintStream(file);
+			pfile.println("I'm Committed");
+			file.close();
+		}
+		catch (java.io.IOException ex) {...}
+		return TwoPhaseOutcome.FINISH_OK ;
+	}
+	
+	public int topLevelPrepare()
+	{
+		try {
+			java.io.FileOutputStream file = new
+				java.io.FileOutputStream(filename);
+			java.io.PrintStream pfile = new java.io.PrintStream(file);
+			pfile.println("I'm prepared");
+			file.close();
+		}
+		catch (java.io.IOException ex)  {...}
+		return  TwoPhaseOutcome.PREPARE_OK ;
+	}
+	…
+}
+</screen>
+	<para>
+		The role of the Recovery Module in such application consists to read the content of the file used to store the status of the participant, to determine that status and print a message indicating if a recovery action is needed or not. 
+	</para>
+<screen>
+package com.arjuna.demo.recoverymodule;
+	
+import com.arjuna.ats.arjuna.recovery.RecoveryModule;
+	
+public class SimpleRecoveryModule implements RecoveryModule
+{
+	public String filename = "c:/tmp/RecordState";
+	public SimpleRecoveryModule ()
+	{
+		System.out.println("The SimpleRecoveryModule is loaded");
+	};
+	
+	public void periodicWorkFirstPass ()
+	{
+		try
+		{
+			java.io.FileInputStream file = new 
+				java.io.FileInputStream(filename);
+			java.io.InputStreamReader input = new 
+				java.io.InputStreamReader(file);
+			java.io.BufferedReader reader = new java.io.BufferedReader(input);
+			String stringState = reader.readLine();
+			if (stringState.compareTo("I'm prepared") == 0)
+				System.out.println("The transaction is in the prepared state");
+			file.close();
+		}
+		catch (java.io.IOException ex)
+		{ System.out.println("Nothing found on the Disk"); }
+	}
+	
+	public void periodicWorkSecondPass ()
+	{
+		try
+		{
+			java.io.FileInputStream file = new 
+				java.io.FileInputStream(filename);
+			java.io.InputStreamReader input = new 
+				java.io.InputStreamReader(file);
+			java.io.BufferedReader reader = new java.io.BufferedReader(input);
+			String stringState = reader.readLine();
+			if (stringState.compareTo("I'm prepared") == 0)
+			{
+				System.out.println("The record is still in the prepared state – Recovery is needed");
+			}
+			else if (stringState.compareTo("I'm Committed") == 0)
+			{
+				System.out.println("The transaction has completed and committed");     
+			}
+			file.close();
+		}
+		catch (java.io.IOException ex)
+		{ System.out.println("Nothing found on the Disk - Either there was 
+			no transaction or it as been rolled back"); }
+	}
+}
+</screen>
+	<para>
+		The recovery module should now be deployed in order to be called by the Recovery Manager. To do so, we just need to add an entry in the <filename>RecoveryManager-properties.xml</filename> by adding a new property as follow: 
+	</para>
+<screen>
+	&lt;property
+		 name="com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;i&gt;"
+        value="com.arjuna.demo.recoverymodule.SimpleRecoveryModule"/&gt;
+</screen>
+	<para>
+		Where &lt;i&gt; represent the new occurrence number that follows the last that already exists in the file. Once started, the Recovery Manager will automatically load the added Recovery module.
+	</para>
+	<note>
+		<para>
+			The source of the code can be retrieved under the trailmap directory of the JBossTS installation. 
+		</para>
+	</note>
+	<formalpara>
+		<title>Another scenario</title>
+		<para>
+			As mentioned, the basic application presented above does not present the complete process to recover from failure, but it was just presented to describe how the build a recovery module. In case of the OTS protocol, let’s consider how a recovery module that manages recovery of OTS resources can be configured. 
+		</para>
+	</formalpara>
+		<para>
+			To manage recovery in case of failure, the OTS specification has defined a recovery protocol. Transaction’s participants in a doubt status could use the RecoveryCoordinator to determine the status of the transaction. According to that transaction status, those participants can take appropriate decision either by roll backing or committing. Asking the RecoveryCoordinator object to determine the status consists to invoke the replay_completion operation on the RecoveryCoordinator.
+		</para>
+		<para>
+			For each OTS Resource in a doubt status, it is well known which RecoveyCoordinator to invoke to determine the status of the transaction in which the Resource is involved – It’s the RecoveryCoordinator returned during the Resource registration process. Retrieving such RecoveryCoordinator per resource means that it has been stored in addition to other information describing the resource. 
+		</para>
+		<para>
+			A recovery module dedicated to recover OTS Resources could have the following behavior. When requested by the recovery Manager on the first pass it retrieves from the disk the list of resources that are in the doubt status. During the second pass, if the resources that were retrieved in the first pass still remain in the disk then they are considered as candidates for recovery. Therefore, the Recovery Module retrieves for each candidate its associated RecoveryCoordinator and invokes the replay_completion operation that the status of the transaction. According to the returned status, an appropriate action would be taken (for instance, rollback the resource is the status is aborted or inactive).
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-TransactionStatusConnectionManager">
+		<title>TransactionStatusConnectionManager</title>
+		<para>
+			The TransactionStatusConnectionManager object is used by the recovery modules to retrieve the status of transactions and acts like a proxy for TransactionStatusManager objects. It maintains a table of TransactionStatusConnector obects each of which connects to a TransactionStatusManager object in an Application Process.
+		</para>
+		<para>
+			The transactions status is retrieved using the getTransactionStatus methods which take a transaction Uid and if available a transaction type as parameters. The process Uid field in the transactions Uid parameter is used to lookup the target TransactionStatusManagerItem host/port pair in the Object Store. The host/port pair are used to make a TCP connection to the target TransactionStatusManager object by a TransactionStatusConnector object. The TransactionStatusConnector passes the transaction Uid/transaction type to the TransactionStatusManager in order to retrieve the transactions status.
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Expired_Scanner_Thread">
+		<title>Expired Scanner Thread</title>
+		<para>
+			When the Recovery Manager initialises an expiry scanner thread ExpiryEntryMonitor is created which is used to remove long dead items from the ObjectStore. A number of scanner modules are dynamically loaded which remove long dead items for a particular type.
+		</para>
+		<para>
+			Scanner modules are loaded at initialisation and are specified as properties beginning with
+		</para>
+<screen>com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner Class&gt;
+</screen>
+		<para>
+			All the scanner modules are called periodically to scan for dead items by the ExpiryEntryMonitor thread. This period is set with the property:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.expiryScanInterval
+</screen>
+		<para>
+			All scanners inherit the same behaviour from the java interface <interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/ExpiryScanner.png" format="PNG" />
+			</imageobject>
+		</mediaobject>
+		<para>
+			A scan method is provided by this interface and implemented by all scanner modules, this is the method that gets called by the scanner thread.
+		</para>
+		<para>
+			The ExpiredTransactionStatusManagerScanner removes long dead TransactionStatusManagerItems from the Object Store. These items will remain in the Object Store for a period of time before they are deleted. This time is set by the property:
+		</para>
+<screen>
+	com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime
+</screen>
+		<para>
+			(default 12 hours)
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Application_Process">
+		<title>Application Process</title>
+			<para>
+				This represents the user transactional program. A Local transaction (hash) table, maintained within the running application process keeps trace of the current status of all transactions created by that  application process, The Recovery Manager needs access to the transaction tables so that it can determine whether a transaction is still in progress, if so then recovery does not happen.
+			</para>
+			<para>
+				The transaction tables are accessed via the TransactionStatusManager object. On application program initialisation the host/port pair that represents the TransactionStatusManager is written to the Object Store in '../Recovery/TransactionStatusManager’ part of the Object Store file hierarchy and identified by the process Uid of the application process.
+			</para>
+			<para>
+				The Recovery Manager uses the TransactionStatusConnectionManager object to retrieve the status of a transaction and a TransactionStatusConnector object is used to make a TCP connection to the TransactionStatusManager.
+			</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-TransactionStatusManager">
+		<title>TransactionStatusManager</title>
+		<para>
+			This object acts as an interface for the Recovery Manager to obtain the status of transactions from running HPTS application processes. One TransactionStatusManager is created per application process by the class com.arjuna.ats.arjuna.coordinator.InitAction. Currently a tcp connection is used for communication between the RecoveryManager and TransactionStatusManager. Any free port is used by the TransactionStatusManager by default, however the port can be fixed with the property:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort
+</screen>
+		<para>
+			On creation the TransactionStatusManager obtains a port which it stores with the host in the Object Store as a TransactionStatusManagerItem. A Listener thread is started which waits for a connection request from a TransactionStatusConnector. When a connection is established a Connection thread is created which runs a Service (AtomicActionStatusService)  which accepts a transaction Uid and a transaction type (if available) from a TransactionStatusConnector, the transaction status is obtained from the local thransaction table and returned back to the TransactionStatusConnector.
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Object_Store">
+		<title>Object Store</title>
+		<para>
+			All objects are stored in a file path which is equivalent to their class inheritance. Thus AtomicAction transactions are stored in file path ../StateManager/BasicAction/AtomicAction.
+		</para>
+		<para>
+			All objects are identified by a unique identifier Uid. One of the values of which is a process id in which the object was created. The Recovery Manager uses the process id to locate transaction status manager items when contacting the originator application process for the transaction status.
+		</para>
+	</section>
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_Failure_Recovery_Guide-Product_Name_and_Version">
+	<title>JBoss Transactions Failure Recovery Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is the Enterprise Application Platform edition of the JBoss Transactions Failure Recovery Guide</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol">
+	<title>How JBossTS manages the OTS Recovery Protocol</title>
+	<para>
+	</para>
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-Recovery_Protocol_in_OTS-Overview">
+		<title>Recovery Protocol in OTS-Overview</title>
+		<para>
+			To manage recovery in case of failure, the OTS specification has defined a recovery protocol. Transaction’s participants in a doubt status could use the RecoveryCoordinator to determine the status of the transaction. According to that transaction status, those participants can take appropriate decision either by roll backing or committing.
+		</para>
+		<para>
+			A reference to a RecoveryCoordinator is returned as a result of successfully calling register_resource on the transaction Coordinator. This object, which is implicitly associated with a single Resource, can be used to drive the Resource through recovery procedures in the event of a failure occurring during the transaction.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/RecoveryCoordinator.png" format="PNG"/>
+			</imageobject>
+			<caption>Resource and RecoveryCoordinator relationship.</caption>
+		</mediaobject>
+	</section>
+	
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-RecoveryCoordinator_in_JBossTS">
+		<title>RecoveryCoordinator in JBossTS</title>
+		<para>
+			On each resource registration a RecoveryCoordinator Object is expected to be created and returned to the application that invoked the register_resource operation. Behind each CORBA object there should be an object implementation or Servant object, in POA terms, which performs operations made on a RecoveryCoordinator object. Rather than to create a RecoveryCoordinator object with its associated servant on each register_resource, JBossTS enhances performance by avoiding the creation of servants but it relies on a default RecoveryCoordinator object with it’s associated default servant to manage all replay_completion invocations. 
+		</para>
+		<para>
+			In the next sections we first give an overview of the Portable Object Adapter architecture, then we describe how this architecture is used to provide RecoveryCoordinator creation with optimization as explained above. 
+		</para>
+		<formalpara>
+			<title>Understanding POA</title>
+			<para>
+				Basically, the Portable Object Adapter, or POA is an object that intercepts a client request and identifies the object that satisfies the client request. The Object is then invoked and the response is returned to the client. 
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/POA.png" format="PNG"/>
+			</imageobject>
+			<caption>Overview of the POA.</caption>
+		</mediaobject>
+		<para>
+			The object that performs the client request is referred as a servant, which provides the implementation of the CORBA object requested by the client. A servant provides the implementation for one or more CORBA object references. To retreive a servant, each POA maintains an Active Object Map that maps all objects that have been activated in the POA to a servant. For each incoming request, the POA looks up the object reference in the Active Object Map and tries to find the responsible servant. If none is found, the request is either delegated to a default servant, or a servant manager is invoked to activate or locate an appropriate servant.  In addition to the name space for the objects, which are identified by Object Ids, a POA also provides a name space for POAs. A POA is created as a child of an existing POA, which forms a hierarchy starting with the root POA.
+		</para>
+		<para>
+			Each POA has a set of policies that define its characteristics. When creating a new POA, the default set of policies can be used or different values can be assigned that suit the application requirements. The POA specification defines:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>Thread policy:</emphasis> Specifies the threading model to be used by the POA. Possible values are:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							ORB_CTRL_MODEL (default): The POA is responsible for assigning requests to threads.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							SINGLE_THREAD_MODEL: The POA processes requests sequentially 
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>Lifespan policy:</emphasis> Specifies the lifespan of the objects implemented in the POA. The lifespan policy can have the following values: 
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							TRANSIENT (Default) Objects implemented in the POA cannot outlive the  process in which they are first created. Once the POA is deactivated, an OBJECT_NOT_EXIST exception occurs when attempting to use any object references generated by the POA.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							PERSISTENT Objects implemented in the POA can outlive the process in which they are first created.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Object ID Uniqueness policy: Allows a single servant to be shared by many abstract objects. The Object ID Uniqueness policy can have the following values: 
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							UNIQUE_ID (Default): Activated servants support only one Object ID. 
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							MULTIPLE_ID: Activated servants can have one or more Object IDs. The Object ID must be determined within the method being invoked at run time.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					ID Assignment policy: Specifies whether object IDs are generated by server applications or by the POA. The ID Assignment policy can have the following values:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							USER_ID is for persistent objects, and 
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							SYSTEM_ID is for transient objects.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Servant Retention policy: Specifies whether the POA retains active servants in the Active Object Map. The Servant Retention policy can have the following values: 
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							RETAIN (Default) The POA tracks object activations in the Active Object Map. RETAIN is usually used with ServantActivators or explicit activation methods on POA.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							NON_RETAIN The POA does not retain active servants in the Active Object Map. NON_RETAIN is typically used with ServantLocators.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Request Processing policy: Specifies how requests are processed by the POA.
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							USE_ACTIVE_OBJECT_MAP (Default): If the Object ID is not listed in the Active Object Map, an OBJECT_NOT _EXIST exception is returned. The POA must also use the RETAIN policy with this value.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							USE_DEFAULT_SERVANT: If the Object ID is not listed in the Active Object Map or the NON_RETAIN policy is set, the request is dispatched to the default servant. If no default servant has been registered, an OBJ_ADAPTER exception is returned. The POA must also use the MULTIPLE_ID policy with this value.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							USE_SERVANT_MANAGER: If the Object ID is not listed in the Active Object Map or the NON_RETAIN policy is set, the servant manager is used to obtain a servant.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Implicit Activation policy: Specifies whether the POA supports implicit activation of servants. The Implicit Activation policy can have the following values:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							IMPLICIT_ACTIVATION: The POA supports implicit activation of servants.  Servants can be activated by converting them to an object reference with <methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> or by invoking <methodname>_this()</methodname> on the servant. The POA must also use the SYSTEM_ID and RETAIN policies with this value.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							NO_IMPLICIT_ACTIVATION (Default): The POA does not support implicit activation of servants.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+		</itemizedlist>
+		<para>
+			It appears that to redirect replay_completion invocations to a default servant we need  to create a POA with the Request Processing policy assigned with the value set to USE_DEFAULT_SERVANT. However to reach that default Servant we should first reach the POA that forward the request to the default servant. Indeed, the ORB uses a set of information to retrieve a POA; these information are contained in the object reference used by the client. Among these information there are the IP address and the port number where resides the server and also the POA name. JBossTS provides one servant per machine to perform replay_completion invocations. This servant is located in the RecoveryManager process. The RecoveryManager process is a separate process from the client and server applications. The next section explains how the indirection to a default Servant located on a separate process is provided for ORBIX and for JacORB. 
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-The_default_RecoveryCoordinator_in_Orbix">
+		<title>The default RecoveryCoordinator in Orbix</title>
+		<para>
+			Within Orbix, objects are located by the Location Deamon. To avoid the overhead of using the location daemon, Orbix provides a mechanism named <emphasis>Direct Persistence</emphasis> allowing generating persistent object references. This mechanism is in fact a proprietary policy named, DIRECT_PERSISTENCE. A POA with policies of PERSISTENT and DIRECT_PERSISTENCE generates IORs that contain a well-known address for the server process. A POA that uses direct persistence must also tell each transport mechanism such as IIOP where in the configuration file it can find the well-known address that it should use. This is done by creating a <code>WellKnownAddressingPolicy</code> object and setting its value to the configuration scope that contains the well-known address. 
+		</para>
+		<para>
+			To specify the address used by the <code>WellKnownAddressingPolicy</code> object, JBossTS uses the Orbix mechanism that allows specifying an ORB/POA names. The following configuration modifications are necessary to define the well-know address of the RecoveryCoordinator performing replay_completion invocation. 
+		</para>
+		<note>
+			<para>
+				Note that this configuration is also necessary to support transaction context propagation and interposition.
+			</para>
+		</note>
+		<para>
+			A new orb name domain called arjuna should be created within the main Orbix 2000 domain being used by the application. It requires the following format:
+		</para>
+<screen>
+arjuna
+{
+	portable_interceptor
+	{
+		orb_plugins = ["local_log_stream", "iiop_profile", "giop", "iiop", "portable_interceptor"];
+	
+		ots_recovery_coordinator
+		{
+			recovery_coordinator:iiop:addr_list = [“&lt;name&gt;:&lt;port&gt;”];
+		};
+			
+		ots_transaction
+		{
+			transaction:iiop:addr_list = [“+&lt;name&gt;:&lt;port&gt;”];
+		};     
+		ots_context
+		{
+			binding:client_binding_list = ["OTS_Context", "OTS_Context+GIOP+SIOP", "GIOP+SIOP", "OTS_Context+GIOP+IIOP", "GIOP+IIOP"];
+			binding:server_binding_list = ["OTS_Context", ""];
+		};
+					
+		ots_interposition
+		{
+			binding:client_binding_list = ["OTS_Interposition", "OTS_Interposition+GIOP+SIOP", "GIOP+SIOP", "OTS_Interposition+GIOP+IIOP", "GIOP+IIOP"];
+			binding:server_binding_list = ["OTS_Interposition", ""];
+		};
+	};
+};
+</screen>
+		<para>
+			The &lt;name&gt; field should be substituted by the name of the machine on which JBossTS is being run. The &lt;port&gt; field should be an unused port on which the JBossTS recovery manager may listen for recovery requests. 
+		</para>
+		<para>
+			Because of the way in which Orbix works with persistent POAs, if you want crash recovery support for your applications you must use one of the  Arjuna ORB names provided (context or interposition) when running your clients and services. When using transaction context propagation only, the<parameter>–ORBname arjuna.portable_interceptor.ots_context</parameter> parameter should be passed to the client and server. When using context propagation and interposition, the <parameter>–ORBname.arjuna.portable_interceptor.ots_interposition</parameter> parameter should be used. For example:
+		</para>
+<screen>
+java mytest –ORBname arjuna.portable_interceptor.ots_context
+</screen>
+		<formalpara>
+			<title>How it works</title>
+			<para>
+				When the Recovery Manager is launched it seeks in the configuration the RecoveryActivator that need be loaded. Once done it invokes the <methodname>startRCservice</methodname> method of each loaded instances. As seen in in the previous chapter (Recovery Manager) the class to load that implements the <interfacename>RecoveryActivator</interfacename> interface  is the class <classname>RecoveryEnablement</classname>. This generic class, located in the package <package>com.arjuna.ats.internal.jts.orbspecific.recovery</package>, hides the nature of the ORB being used by the application. The following figure illustrates the behavior of the <interfacename>RecoveryActivator</interfacename> that leads to the creation of the default servant that performs all replay_invocations requests. 
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Recovery_Manager.png" format="PNG"/>
+			</imageobject>
+			<caption>The Recovery Manager and the creation of the default servant for RecoveryCoordinator.</caption>
+		</mediaobject>
+		<note>
+			<para>
+				There is one recovery Manager Process per machine, then one default servant per machine. Performing all replay_completion invocations means those made on the same machine.
+			</para>
+		</note>
+		<para>
+			When started, the application, using JBossTS in library mode, is launched a child POA is created with the same policies as those defined within the Recovery Manager. This child POA is used to create object references, for RecoveryCoordinator CORBA objects, that need to be returned on register_resource invocations, as illustrated in figure below. The Object reference created has an Object ID that contains the transaction ID in progress and the Process Identifier of the application. 
+		</para>
+		<note>
+			<para>
+				If the Transaction Service is used in the stand-alone mode, the behavior to create object reference to RecoveryCoordinator objects is exactly the same; the process ID used in the Object ID is the Transaction Service process ID
+			</para>
+		</note>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Application_Process.png" format="PNG"/>
+			</imageobject>
+			<caption>Resource registration and returned RecoveryCoordinator Object reference.</caption>
+		</mediaobject>
+		<para>
+			Having the object reference of the RecoveryCoordinator, an application can use it to determine the status of the transaction for which that object reference is created. When a RecoveryCoordinator, according to POA policies is assigned to the POA included in the object reference, the request is forward straight to the default servant defined in the Recovery Manager, as described in the figure below. 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Transaction_Process.png" format="PNG"/>
+			</imageobject>
+			<caption>replay_completion invocation forwarded to the default RecoveryCoordinator .</caption>
+		</mediaobject>
+		<para>
+			The flow described in the figure can be depicted as follow:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					The participant invokes the replay_completion operation on RecoveryCoordinator object using the object reference returned by the Transaction Server.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The request is forwarded to the Recovery Manager process since the Well-known-address policy is used to retrieve. 
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The child POA responsible to locate the servant is retrieved.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					After looking to the Active Object Map, the child POA invokes the default servant to perform the request. Note that the Object ID conveyed by the object reference is not retrieved in the AOP. 
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The servant extracts from the request the Object ID that contains the Transaction ID and the process ID of the Transaction Server process. To determine if the process still alive, the TransactionStatusConnectionManager functionalities are used.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					According to the presence or not of the Transaction Server process and eventually the returned status, the servant returns the status of the transaction asked by the participant.
+				</para>
+			</listitem>
+		</orderedlist>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-The_default_RecoveryCoordinator_in_JacOrb">
+		<title>The default RecoveryCoordinator in JacOrb</title>
+		<para>
+			JacORB does not define additional policies to redirect any request on a RecoveryCoordinator object to a default servant located in the Recovery Manager process. However it provides a set of APIs that allows building object references with specific IP address, port number and POA name in order to reach the appropriate default servant.
+		</para>
+		<formalpara>
+			<title>How it works</title>
+			<para>
+				When the Recovery Manager is launched it seeks in the configuration the RecoveryActivator that need be loaded. Once done it invokes the <methodname>startRCservice</methodname> method of each loaded instances. As seen in in the previous chapter (Recovery Manager ) the class to load that implements the <interfacename>RecoveryActivator</interfacename> interface  is the class <classname>RecoveryEnablement</classname>. This generic class, located in the package <package>com.arjuna.ats.internal.jts.orbspecific.recovery</package>, hides the nature of the ORB being used by the application (JacORB). The following figure illustrates the behavior of the <interfacename>RecoveryActivator</interfacename> that leads to the creation of the default servant that performs replay_completion invocations requests. 
+			</para>
+		</formalpara>
+		<para>
+			In addition to the creation of the default servant, an object reference to a <code>RecoveryCoordinator</code> object is created and stored in the ObjectStore. As we will see this object reference will be used to obtain its IP address, port number and POA name and assign them to any <code>RecoveryCoordinator</code> object reference created on register_resource. 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Recover_Manager_Flow.png" format="PNG"/>
+			</imageobject>
+			<caption>replay_completion invocation forwarded to the default RecoveryCoordinator.</caption>
+		</mediaobject>
+		<para>
+			When an application registers a resource with a transaction, a <code>RecoveryCoordinator</code> object reference is expected to be returned. To build that object reference, the Transaction Service uses the RecoveryCoordinator object reference created within the Recovery Manager as a template. The new object reference contains practically the same information to retrieve the default servant (IP address, port number, POA name, etc.), but the Object ID is changed; now, it contains the Transaction ID of the transaction in progress and also the Process ID of the process that is creating the new <code>RecoveryCoordinator</code> object reference, as illustrated below. 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/RecoverCoordinator_Object.png" format="PNG"/>
+			</imageobject>
+			<caption>Resource registration and returned RecoveryCoordinator Object reference build from a reference stored in the ObjectStore.</caption>
+		</mediaobject>
+		<para>
+			Since a <code>RecoveryCoordintaor</code> object reference returned to an application contains all information to retrieve the POA then the default servant located in the Recovery Manager, all replay_completion invocation, per machine, are forwarded to the same default <code>RecoveryCoordinator</code> that is able to retreive the Object ID from the incoming request to extract the transaction identifier and the process identifier needed to determine the status of the requested transaction.
+		</para>
+	</section>
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_Failure_Recovery_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Architecture_of_the_Recovery_Manager.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="How_JBossTS_managers_the_OTS_Recovery_Protocol.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,15 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="Transactions_Failure_Recovery_Guide-Preface">
+	<title>Preface</title>
+	<para>
+	</para>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> 
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include>
+</preface>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Application_Process.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Application_Process.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Crash_Recovery_Architecture.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Crash_Recovery_Architecture.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/ExpiryScanner.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/ExpiryScanner.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/ObjectStore.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/ObjectStore.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/POA.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/POA.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/RecoverCoordinator_Object.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/RecoverCoordinator_Object.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recover_Manager_Flow.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recover_Manager_Flow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recovery.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recovery.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/RecoveryCoordinator.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/RecoveryCoordinator.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recovery_Manager.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Recovery_Manager.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Resource-initiated_Recovery.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Resource-initiated_Recovery.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Transaction_Process.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/Transaction_Process.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 11:40+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Architecture_of_the_Recovery_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,2064 @@
+# translation of Architecture_of_the_Recovery_Manager.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Architecture_of_the_Recovery_Manager\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-08-14 14:19+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:6
+#, no-c-format
+msgid "Architecture of the Recovery Manager"
+msgstr "Recovery Manager のアーキテクチャ"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:8
+#, no-c-format
+msgid "Crash Recovery Overview"
+msgstr "クラッシュリカバリの概要"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:9
+#, no-c-format
+msgid ""
+"The main architectural components within Crash Recovery are illustrated in "
+"the diagram below:"
+msgstr ""
+"下図は、Crash Recovery 内の主なアーキテクチャのコンポーネントを表しています。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:17
+#, no-c-format
+msgid ""
+"The Recovery Manager is a daemon process responsible for performing crash "
+"recovery. Only one Recovery Manager runs per node. The Object Store provides "
+"persistent data storage for transactions to log data. During normal "
+"transaction processing each transaction will log persistent data needed for "
+"the commit phase to the Object Store. On successfully committing a "
+"transaction this data is removed, however if the transaction fails then this "
+"data remains within the Object Store."
+msgstr ""
+"Recovery Manager とは、クラッシュリカバリを実行するデーモンプロセスのことで"
+"す。ノードごとに 1 つの Recovery Manager のみが実行されます。Object Store "
+"は、データのログを記録するため、トランザクションに対して永続データストレージ"
+"を提供します。通常のトランザクションプロセスでは、各トランザクションがコミッ"
+"ト段階で必要な永続データを Object Store にログします。トランザクションが無事"
+"コミットされると、このデータは削除されますが、トランザクションが失敗すると、"
+"このデータは Object Store 内に保持されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:20
+#, no-c-format
+msgid "The Recovery Manager functions by:"
+msgstr "Recovery Manager は下記によって機能します:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:25
+#, no-c-format
+msgid ""
+"Periodically scanning the Object Store for transactions that may have "
+"failed. Failed transactions are indicated by the presence of log data after "
+"a period of time that the transaction would have normally been expected to "
+"finish."
+msgstr ""
+"失敗したトランザクションがないか Object Store を定期的にスキャンします。トラ"
+"ンザクションが通常終了する時間の後にログデータが存在する場合、トランザクショ"
+"ンが失敗したことを示しています。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:30
+#, no-c-format
+msgid ""
+"Checking with the application process which originated the transaction "
+"whether the transaction is still in progress or not."
+msgstr ""
+"トランザクションが発生したアプリケーションプロセスをチェックし、トランザク"
+"ションが実行中であるか確認します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:35
+#, no-c-format
+msgid ""
+"Recovering the transaction by re-activating the transaction and then "
+"replaying phase two of the commit protocol."
+msgstr ""
+"トランザクションを再度アクティブにしてから、コミットプロトコルのフェーズ 2 を"
+"再生し、トランザクションをリカバリします。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:40
+#, no-c-format
+msgid ""
+"The following sections describe the architectural components in more detail"
+msgstr ""
+"アーキテクチャのコンポーネントについての詳細は、次の項を参照してください。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:46
+#, no-c-format
+msgid "Recovery Manager"
+msgstr "リカバリマネージャ"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:47
+#, no-c-format
+msgid ""
+"On initialization the Recovery Manager first loads in configuration "
+"information via a properties file. This configuration includes a number of "
+"recovery activators and recovery modules, which are then dynamically loaded."
+msgstr ""
+"初期化の際、Recovery Manager は最初に設定情報をプロパティファイルよりロードし"
+"ます。この設定には、動的にロードされるリカバリアクティベータの数やリカバリモ"
+"ジュールの数が含まれています。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:50
+#, no-c-format
+msgid ""
+"Since the version 3.0 of JBossTS, the Recovery Manager is not specifically "
+"tied to an Object Request Broker or ORB. Hence, the OTS recovery protocol is "
+"not implicitly enabled. To enable such protocol, we use the concept of "
+"recovery activator, defined with the interface "
+"<interfacename>RecoveryActivator</interfacename>, which is used to "
+"instantiate a recovery class related to the underlying communication "
+"protocol. For instance, when used with OTS, the "
+"<interfacename>RecoveryActivitor</interfacename> has the responsibility to "
+"create a RecoveryCoordinator object able to respond to the replay_completion "
+"operation."
+msgstr ""
+"JBossTS バージョン3.0 より、Recovery Manager は Object Request Broker (ORB) "
+"には明確に拘束されなくなりました。そのため、OTS リカバリプロトコルは暗黙的に"
+"有効になっていません。このプロトコルを有効にするには、"
+"<interfacename>RecoveryActivator</interfacename> インターフェイスで定義される"
+"リカバリアクティベータの概念を使用します。<interfacename>RecoveryActivator</"
+"interfacename> は基礎の通信プロトコルに関係するリカバリクラスをインスタンス化"
+"します。例えば、<interfacename>RecoveryActivitor</interfacename> を OTS と使"
+"用すると、replay_completion 操作に応答できる RecoveryCoordinator オブジェクト"
+"を作成します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:53
+#, no-c-format
+msgid ""
+"All <interfacename>RecoveryActivator</interfacename> instances inherit the "
+"same interface. They are loaded via the following recovery extension "
+"property:"
+msgstr ""
+"すべての <interfacename>RecoveryActivator</interfacename> インスタンスは同じ"
+"インターフェイスを継承します。<interfacename>RecoveryActivator</"
+"interfacename> インスタンスは、次のリカバリ拡張プロパティによってロードされま"
+"す。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:56
+#, no-c-format
+msgid ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+msgstr ""
+"&lt;property  \n"
+"                   name=\"com.arjuna.ats.arjuna.recovery."
+"recoveryActivator_&lt;number&gt;\" value=\"RecoveryClass\" /&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:57
+#, no-c-format
+msgid ""
+"For instance the <interfacename>RecoveryActivator</interfacename> provided "
+"in the distribution of JTS/OTS, which shall not be commented, is as follow:"
+msgstr ""
+"例えば、コメントされない JTS/OTS のディストリビューション内で提供される "
+"<interfacename>RecoveryActivator</interfacename> は次のようになります。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:60
+#, no-c-format
+msgid ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+msgstr ""
+"&lt;property \n"
+"        name=\"com.arjuna.ats.arjuna.recovery.recoveryActivator_1\" value="
+"\"com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:61
+#, no-c-format
+msgid ""
+"When loaded all <interfacename>RecoveryActivator</interfacename> instances "
+"provide the method <methodname>startRCservice</methodname> invoked by the "
+"Recovery Manager and used to create the appropriate Recovery Component able "
+"to receive recovery requests according to a particular transaction protocol. "
+"For instance the RecoveryCoordinator defined by the OTS protocol."
+msgstr ""
+"すべての <interfacename>RecoveryActivator</interfacename> インスタンスがロー"
+"ドされると、<methodname>startRCservice</methodname> メソッドを提供します。"
+"<methodname>startRCservice</methodname> メソッドは、Recovery Manager により呼"
+"び出され、特定のトランザクションプロトコルに基づいてリカバリ要求を受信できる "
+"Recovery Component を作成するために使用されます。RecoveryCoordinator は OTS "
+"プロトコルによって定義されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:64
+#, no-c-format
+msgid ""
+"Each recovery module is used to recover a different type of transaction/"
+"resource, however each recovery module inherits the same basic behavior."
+msgstr ""
+"各リカバリモジュールは、異なるタイプのトランザクション/リソースをリカバリす"
+"るために使用されますが、各リカバリモジュールは同じ基本動作を継承します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:67
+#, no-c-format
+msgid ""
+"Recovery consists of two separate passes/phases separated by two timeout "
+"periods. The first pass examines the object store for potentially failed "
+"transactions; the second pass performs crash recovery on failed "
+"transactions. The timeout between the first and second pass is known as the "
+"backoff period. The timeout between the end of the second pass and the start "
+"of the first pass is the recovery period. The recovery period is larger than "
+"the backoff period."
+msgstr ""
+"リカバリは、2 つのタイムアウト期間によって分けられた 2 つの受け渡し (pass) /"
+"フェーズによって構成されます。最初の受け渡しは、失敗した可能性があるトランザ"
+"クションがあるか判断するため、オブジェクトストアを調べます。2 番目の受け渡し"
+"は失敗したトランザクションに対してクラッシュリカバリを実行します。最初の受け"
+"渡しと 2 番目の受け渡しの間に生じるタイムアウトはバックオフ期間と呼ばれ、2 番"
+"目の受け渡しの終了時と最初の受け渡しの開始時の間に生じるタイムアウトはリカバ"
+"リ期間と呼ばれます。リカバリ期間はバックオフ期間よりも長くなります。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:70
+#, no-c-format
+msgid ""
+"The Recovery Manager invokes the first pass upon each recovery module, "
+"applies the backoff period timeout, invokes the second pass upon each "
+"recovery module and finally applies the recovery period timeout before "
+"restarting the first pass again."
+msgstr ""
+"Recovery Manager は各リカバリモジュールで最初の受け渡しを呼び出し、バックオフ"
+"期間のタイムアウトを適応します。そして、各リカバリモジュールで 2 番目の受け渡"
+"しを呼び出し、リカバリ期間のタイムアウトを適応してから、最初の受け渡しを再度"
+"開始します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:73
+#, no-c-format
+msgid ""
+"The recovery modules are loaded via the following recovery extension "
+"property:"
+msgstr "リカバリモジュールは次のリカバリ拡張プロパティによってロードされます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:76
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;"
+"RecoveryClass&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:77
+#, no-c-format
+msgid ""
+"The backoff period and recovery period are set using the following "
+"properties:"
+msgstr ""
+"バックオフ期間およびリカバリ期間は、次のプロパティによって設定されます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:80
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod        (default 10 "
+"secs)\n"
+"com.arjuna.ats.arjuna.recovery.periodicRecovery                (default 120 "
+"secs)"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:81
+#, no-c-format
+msgid "The following java classes are used to implement the Recovery Manager:"
+msgstr "Recovery Manager の実装には次の java クラスが使用されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:86
+#, no-c-format
+msgid "package <package>com.arjuna.ats.arjuna.recovery</package>:"
+msgstr "<package>com.arjuna.ats.arjuna.recovery</package> パッケージ:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:91
+#, no-c-format
+msgid ""
+"RecoveryManager: The daemon process that starts up by instantiating an "
+"instance of the RecoveryManagerImple class."
+msgstr ""
+"RecoveryManager: RecoveryManagerImple クラスのインスタンスをインスタンス化す"
+"ることで起動するデーモンプロセスです。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:96
+#, no-c-format
+msgid "RecoveryEnvironment: Properties used by the recovery manager."
+msgstr ""
+"RecoveryEnvironment: リカバリマネージャによって使用されるプロパティです。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:101
+#, no-c-format
+msgid ""
+"RecoveryConfiguration: Specifies the name of the Recovery Manager property "
+"file. (for instance, RecoveryManager-properties.xml)"
+msgstr ""
+"RecoveryConfiguration: Recovery Manager プロパティファイルの名前を指定します "
+"(例:RecoveryManager-properties.xml)。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:108
+#, no-c-format
+msgid "package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:"
+msgstr ""
+"<package>com.arjuna.ats.internal.ts.arjuna.recovery</package> パッケージ:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:113
+#, no-c-format
+msgid ""
+"RecoveryManagerImple: Creates and starts instances of the "
+"RecActivatorLoader, the PeriodicRecovery thread and the ExpiryEntryMonitor "
+"thread."
+msgstr ""
+"RecoveryManagerImple: RecActivatorLoader や PeriodicRecovery スレッド、"
+"ExpiryEntryMonitor スレッドのインスタンスを作成し、開始します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:118
+#, no-c-format
+msgid ""
+"RecActivatorLoader: Dynamically loads in the RecoveryActivator specified in "
+"the Recovery Manager property file. Each RecoveryActicator is specified as a "
+"recovery extension in the properties file."
+msgstr ""
+"RecActivatorLoader: Recovery Manager プロパティファイルに指定された "
+"RecoveryActivator を動的にロードします。各 RecoveryActicator はプロパティファ"
+"イルのリカバリ拡張として指定されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:123
+#, no-c-format
+msgid ""
+"PeriodicRecovery: Thread which loads each recovery module, then calls the "
+"first pass method for each module, applies the backoff period timeout, calls "
+"the second pass method for each module and applies the recovery period "
+"timeout."
+msgstr ""
+"PeriodicRecovery: 各リカバリモジュールをロードするスレッドです。ロードした"
+"後、各モジュールの最初の受け渡しを呼び出してバックオフ期間のタイムアウトを適"
+"応し、その後、各モジュールの 2 番目の受け渡しを呼び出してリカバリ期間のタイム"
+"アウトを適応します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:128
+#, no-c-format
+msgid ""
+"RecoveryClassLoader: Dynamically loads in the recovery modules specified in "
+"the Recovery Manager property file. Each module is specified as a recovery "
+"extension in the properties file (for instance, com.arjuna.ats.arjuna."
+"recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery."
+"AtomicActionRecoveryModule)."
+msgstr ""
+"RecoveryClassLoader: Recovery Manager プロパティファイルに指定されたリカバリ"
+"モジュールを動的にロードします。各モジュールはプロパティファイルのリカバリ拡"
+"張として指定されます (例:com.arjuna.ats.arjuna.recovery.recoveryExtension1= "
+"com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule)。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:136
+#, no-c-format
+msgid ""
+"By default, the recovery manager listens on the first available port on a "
+"given machine. If you wish to control the port number that it uses, you can "
+"specify this using the com.arjuna.ats.arjuna.recovery.recoveryPort attribute."
+msgstr ""
+"デフォルトでは、リカバリマネージャはマシン上で最初に利用可能なポートをリッス"
+"ンします。リカバリマネージャが使用するポート番号を指定するには、com.arjuna."
+"ats.arjuna.recovery.recoveryPort 属性を使用して指定します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:141
+#, no-c-format
+msgid "Embedding the Recovery Manager"
+msgstr "Recovery Manager の組み込み"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:142
+#, no-c-format
+msgid ""
+"In some situations it may be required to embed the RecoveryManager in the "
+"same process as the transaction service. In this case you can create an "
+"instance of the RecoveryManager through the manager method on com.arjuna.ats."
+"arjuna.recovery.RecoveryManager. A RecoveryManager can be created in one of "
+"two modes, selected via the parameter to the manager method:"
+msgstr ""
+"場合によっては、同じプロセスで Recoverymanager をトランザクションサービスとし"
+"て組み込む必要があることがあります。この場合、com.arjuna.ats.arjuna.recovery."
+"RecoveryManager のマネージャメソッドにて RecoveryManager のインスタンスを作成"
+"することができます。RecoveryManager は 2 つのモードの 1 つで作成することがで"
+"き、マネージャメソッドへのパラメータを使用して選択します:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:148
+#, no-c-format
+msgid ""
+"INDIRECT_MANAGEMENT: the manager runs periodically but can also be "
+"instructed to run when desired via the scan operation or through the "
+"RecoveryDriver class to be described below."
+msgstr ""
+"INDIRECT_MANAGEMENT: マネージャは周期的に実行されますが、下記のように、スキャ"
+"ン操作または RecoveryDrive によって必要な時に実行を指示できます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:153
+#, no-c-format
+msgid ""
+"DIRECT_MANAGEMENT: the manager does not run periodically and must be driven "
+"directly via the scan operation or RecoveryDriver."
+msgstr ""
+"DIRECT_MANAGEMENT: マネージャは周期的に実行されず、スキャン操作または "
+"RecoveryDriver より直接指示されなければなりません。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:159
+#, no-c-format
+msgid "Managing recovery directly"
+msgstr "リカバリを直接管理する"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:160
+#, no-c-format
+msgid ""
+"As already mentioned, recovery typically happens at periodic intervals. If "
+"you require to drive recovery directly, then there are two options, "
+"depending upon how the RecoveryManager has been created."
+msgstr ""
+"前述の通り、リカバリは通常定期的な間隔で実行されます。直接リカバリを実行する"
+"必要がある場合、RecoveryManager がどのように作成されたかにより、2 つの方法か"
+"ら選択します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:165
+#, no-c-format
+msgid "Seperate Recovery Manager"
+msgstr "個別 Recovery Manager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:166
+#, no-c-format
+msgid ""
+"You can either use the com.arjuna.ats.arjuna.tools.RecoveryMonitor program "
+"to send a message to the Recovery Manager instructing it to perform "
+"recovery, or you can create an instance of the com.arjuna.ats.arjuna."
+"recovery.RecoveryDriver class to do likewise. There are two types of "
+"recovery scan available:"
+msgstr ""
+"com.arjuna.ats.arjuna.tools.RecoveryMonitor プログラムを使用するか、com."
+"arjuna.ats.arjuna.recovery.RecoveryDriver クラスのインスタンスを作成して、リ"
+"カバリを実行するよう指示するメッセージを Recovery Manager に送信します。使用"
+"できるリカバリスキャンは次の 2 つになります。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:172
+#, no-c-format
+msgid ""
+"ASYNC_SCAN: here a message is sent to the RecoveryManager to instruct it to "
+"perform recovery, but the response returns before recovery has completed."
+msgstr ""
+"ASYNC_SCAN: リカバリの実行を指示するメッセージが RecoveryManager へ送信されま"
+"すが、応答はリカバリが終了する前に返されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:177
+#, no-c-format
+msgid ""
+"SYNC: here a message is sent to the RecoveryManager to instruct it to "
+"perform recovery, and the response occurs only when recovery has completed."
+msgstr ""
+"SYNC: リカバリの実行を指示するメッセージが RecoveryManager へ送信され、応答は"
+"リカバリが終了した後のみ発生します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:183
+#, no-c-format
+msgid "In process Recovery Manager"
+msgstr "インプロセス Recovery Manager "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:184
+#, no-c-format
+msgid ""
+"You can invoke the scan operation on the RecoveryManager. This operation "
+"returns only when recovery has completed. However, if you wish to have an "
+"asynchronous interaction pattern, then the RecoveryScan interface is "
+"provided:"
+msgstr ""
+"RecoveryManager 上でスキャン操作を呼び出せます。この操作はリカバリが終了した"
+"時にのみ返されます。非同期の対話パターンを使用する場合は、RecoveryScan イン"
+"ターフェイスが提供されます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:188
+#, no-c-format
+msgid ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+msgstr ""
+"public interface RecoveryScan\n"
+"{\n"
+"        public void completed ();\n"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:189
+#, no-c-format
+msgid ""
+"An instance of an object supporting this interface can be passed to the scan "
+"operation and its completed method will be called when recovery finishes. "
+"The scan operation returns immediately, however."
+msgstr ""
+"このインターフェイスをサポートするオブジェクトのインスタンスをスキャン操作へ"
+"渡すことができます。また、リカバリが終了すると、完了したメソッドが呼び出され"
+"ますが、スキャン操作は即座に返されます。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:195
+#, no-c-format
+msgid "Recovery Modules"
+msgstr "リカバリモジュール"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:196
+#, no-c-format
+msgid ""
+"As stated before each recovery module is used to recover a different type of "
+"transaction/resource, but each recovery module must implement the following "
+"RecoveryModule interface, which defines two methods: "
+"<methodname>periodicWorkFirstPass</methodname> and "
+"<methodname>periodicWorkSecondPass</methodname> invoked by the Recovery "
+"Manager."
+msgstr ""
+"各リカバリモジュールは異なるタイプのトランザクション/リソースをリカバリする"
+"ために使用されますが、各モジュールは次の RecoveryModule インターフェイスを実"
+"装しなければなりません。この RecoveryModule インターフェイスは、Recovery "
+"Manager によって呼び出される <methodname>periodicWorkFirstPass</methodname> "
+"および <methodname>periodicWorkSecondPass</methodname> の 2 つのメソッドを定"
+"義します。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:199
+#, no-c-format
+msgid ""
+"public interface RecoveryModule\n"
+"{\n"
+"        /**\n"
+"        * Called by the RecoveryManager at start up, and then\n"
+"        * PERIODIC_RECOVERY_PERIOD seconds after the completion, for all   \n"
+"        * RecoveryModules of the second pass\n"
+"        */\n"
+"        public void periodicWorkFirstPass ();\n"
+"        \n"
+"        /**\n"
+"        * Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds\n"
+"        * after the completion of the first pass\n"
+"        */\n"
+"        public void periodicWorkSecondPass ();\n"
+"}"
+msgstr ""
+"public interface RecoveryModule\n"
+"{\n"
+"        /**\n"
+"        * Called by the RecoveryManager at start up, and then\n"
+"        * PERIODIC_RECOVERY_PERIOD seconds after the completion, for all   \n"
+"        * RecoveryModules of the second pass\n"
+"        */\n"
+"        public void periodicWorkFirstPass ();\n"
+"        \n"
+"        /**\n"
+"        * Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds\n"
+"        * after the completion of the first pass\n"
+"        */\n"
+"        public void periodicWorkSecondPass ();\n"
+"}"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:201
+#, no-c-format
+msgid "JBossTS Recovery Module Classes"
+msgstr "JBossTS のリカバリモジュールクラス"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:202
+#, no-c-format
+msgid ""
+"JBossTS provides a set of recovery modules that are responsible to manage "
+"recovery according to the nature of the participant and its position in a "
+"transactional tree. The provided classes (that all implements the "
+"<interfacename>RecoveryModule</interfacename> interface) are:"
+msgstr ""
+"JBossTS は、参加者の性質やトランザクションツリーにおける場所に基づいてリカバ"
+"リを管理する一連のリカバリモジュールを提供します。提供されるクラスは次の通り"
+"です (すべて <interfacename>RecoveryModule</interfacename> インターフェイスを"
+"実装します)。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:209
+#, no-c-format
+msgid "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+msgstr "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:210
+#, no-c-format
+msgid "Recovers AtomicAction transactions."
+msgstr "AtomicAction トランザクションをリカバリします。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:217
+#, no-c-format
+msgid "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+msgstr "com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:218
+#, no-c-format
+msgid "Recovers Transactional Objects for Java."
+msgstr "Java のトランザクションオブジェクトをリカバリします。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:225
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:226
+#, no-c-format
+msgid ""
+"Recovers JTS Transactions. This is a generic class from which TopLevel and "
+"Server transaction recovery modules inherit, respectively"
+msgstr ""
+"JTS トランザクションをリカバリします。以下は、TopLevel および Server トランザ"
+"クションリカバリモジュールがそれぞれ継承する汎用クラスになります。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"TopLevelTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:234
+#, fuzzy, no-c-format
+msgid "Recovers JTS Toplevel Transactions."
+msgstr "AtomicAction トランザクションをリカバリします。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:241
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+msgstr ""
+"com.arjuna.ats.internal.jts.recovery.transactions."
+"ServerTransactionRecoveryModule"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:242
+#, fuzzy, no-c-format
+msgid "Recovers JTS Server Transactions."
+msgstr "AtomicAction トランザクションをリカバリします。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:248
+#, no-c-format
+msgid ""
+"To illustrate the behavior of a recovery module, the following pseudo code "
+"describes the basic algorithm used for Atomic Action transactions and "
+"Transactional Objects for java."
+msgstr ""
+"リカバリモジュールの動作を説明するため、次の擬似コードで Atomic Action トラン"
+"ザクションおよび Java の Tranactional Object に使用される基本アルゴリズムを表"
+"します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:252
+#, no-c-format
+msgid "AtomicAction pseudo code"
+msgstr "AtomicAction の擬似コード"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:253
+#, no-c-format
+msgid "First Pass:"
+msgstr "最初の受け渡し:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:257
+#, no-c-format
+msgid ""
+"&lt; create a transaction vector for transaction Uids. &gt;\n"
+"&lt; read in all transactions for a transaction type AtomicAction. &gt;\n"
+"while &lt; there are transactions in the vector of transactions. &gt;\n"
+"do\n"
+"        &lt; add the transaction to the vector of transactions. &gt;\n"
+"end while."
+msgstr ""
+"&lt; トランザクション UID のトランザクションベクトルを作成する &gt;\n"
+"&lt; トランザクションタイプ AtomicAction のすべてのトランザクションを読み取"
+"ã‚‹ &gt;\n"
+"while &lt; トランザクションのベクトル内にトランザクションがある &gt;\n"
+"do\n"
+"        &lt; トランザクションのベクトルにトランザクションを追加する &gt;\n"
+"end while."
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:258
+#: Architecture_of_the_Recovery_Manager.xml:267
+#, no-c-format
+msgid "Second Pass:"
+msgstr "2 番目の受け渡し:"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:261
+#, no-c-format
+msgid ""
+"while &lt; there are transactions in the transaction vector &gt;\n"
+"do\n"
+"        if &lt; the intention list for the transaction still exists &gt;\n"
+"        then\n"
+"                &lt; create new transaction cached item &gt;\n"
+"                &lt; obtain the status of the transaction &gt;\n"
+"                                        \n"
+"                if         &lt; the transaction is not in progress &gt;\n"
+"                then\n"
+"                        &lt; replay phase two of the commit protocol &gt;\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+msgstr ""
+"while &lt; トランザクションベクトルにトランザクションがある &gt;\n"
+"do\n"
+"        if &lt; トランザクションの意図リストがまだ存在する &gt;\n"
+"        then\n"
+"                &lt; トランザクションがキャッシュした新しい項目を作成する "
+"&gt;\n"
+"                &lt; トランザクションの状況を取得する &gt;\n"
+"                                        \n"
+"                if         &lt; トランザクションが実行中でない &gt;\n"
+"                then\n"
+"                        &lt; コミットプロトコルのフェーズ 2 を再生する &gt;\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:263
+#, no-c-format
+msgid "Transactional Object pseudo code"
+msgstr "Transactional Object の擬似コード"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:264
+#, no-c-format
+msgid "First Pass"
+msgstr "最初の受け渡し"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:266
+#, no-c-format
+msgid ""
+"&lt; Create a hash table for uncommitted transactional objects. &gt;\n"
+"&lt; Read in all transactional objects within the object store. &gt;\n"
+"while &lt; there are transactional objects &gt;\n"
+"do\n"
+"        if         &lt; the transactional object has an Uncommited status in "
+"the object store &gt;\n"
+"        then\n"
+"                &lt; add the transactional Object o the hash table for "
+"uncommitted transactional objects&gt;\n"
+"        end if.\n"
+"end while."
+msgstr ""
+"&lt; コミットされていないトランザクションオブジェクト用のハッシュテーブルを作"
+"成する &gt;\n"
+"&lt; オブジェクトストア内ですべてのトランザクションオブジェクトを読み込む "
+"&gt;\n"
+"while &lt; トランザクションオブジェクトがある &gt;\n"
+"do\n"
+"        if         &lt; トランザクションオブジェクトがオブジェクトストア内で "
+"Uncommited 状態 &gt;\n"
+"        then\n"
+"                &lt; トランザクションオブジェクトをコミットされていないトラン"
+"ザクションオブジェクト用のハッシュテーブルに追加する &gt;\n"
+"        end if.\n"
+"end while."
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:270
+#, no-c-format
+msgid ""
+"while &lt; there are transactions in the hash table for uncommitted "
+"transactional objects &gt;\n"
+"do\n"
+"        if &lt; the transaction is still in the Uncommitted state &gt;\n"
+"        then\n"
+"                if &lt; the transaction is not in the Transaction Cache "
+"&gt;\n"
+"                then\n"
+"                        &lt; check the status of the transaction with the "
+"original application process &gt;\n"
+"                        if &lt; the status is Rolled Back or the application "
+"process is inactive &gt;\n"
+"                                &lt; rollback the transaction by removing "
+"the Uncommitted status from the Object Store &gt;\n"
+"                        endif.\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+msgstr ""
+"while &lt; コミットされていないトランザクションオブジェクト用のハッシュテーブ"
+"ルにトランザクションがある &gt;\n"
+"do\n"
+"        if &lt; トランザクションがまだ Uncommitted 状態 &gt;\n"
+"        then\n"
+"                if &lt; トランザクションが Transaction Cache にない &gt;\n"
+"                then\n"
+"                        &lt; 元のアプリケーションプロセスでトランザクションの"
+"状況をチェックする &gt;\n"
+"                        if &lt; トランザクションが Rolled Back 状態またはアプ"
+"リケーションプロセスが非アクティブ &gt;\n"
+"                                &lt; Object Store より Uncommitted 状態を削除"
+"してトランザクションをロールバックする &gt;\n"
+"                        endif.\n"
+"                endif.\n"
+"        endif.\n"
+"end while."
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:272
+#, no-c-format
+msgid "A Recovery Module for XA Resources"
+msgstr "XA リソースのリカバリモジュール"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:273
+#, no-c-format
+msgid ""
+"To manage recovery, we have seen in the previous chapter that the Recovery "
+"Manager triggers a recovery process by calling a set of recovery modules "
+"that implements the two methods defined by the "
+"<interfacename>RecoveryModule</interfacename> interface."
+msgstr ""
+"前の項で説明した通り、Recovery Manager は <interfacename>RecoveryModule</"
+"interfacename> インターフェイスで定義された 2 つのメソッドを実装する一連のリ"
+"カバリモジュールを呼び出し、リカバリ処理をトリガすることで、リカバリを管理し"
+"ます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:277
+#, no-c-format
+msgid ""
+"To enable recovery of participants controlled via the <interfacename>XA</"
+"interfacename> interface, a specific recovery module named XARecoveryModule "
+"is provided. The XARecoveryModule, defined in the packages <package>com."
+"arjuna.ats.internal.jta.recovery.arjunacore</package> and <package>com."
+"arjuna.ats.internal.jta.recovery.jts</package>, handles recovery of "
+"<interfacename>XA</interfacename> resources (for example, databases) used in "
+"JTA."
+msgstr ""
+"<interfacename>XA</interfacename> インターフェイスによって制御される参加者の"
+"リカバリを有効にするため、専用のリカバリモジュールである XARecoveryModule が"
+"提供されます。XARecoveryModule は、<package>com.arjuna.ats.internal.jta."
+"recovery.arjunacore</package> および <package>com.arjuna.ats.internal.jta."
+"recovery.jts</package> パッケージ内で定義され、JTA 内で使用される "
+"<interfacename>XA</interfacename> リソース (例:データベース) のリカバリを処"
+"理します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:281
+#, no-c-format
+msgid ""
+"JBossTS supports two JTA implementations: a purely local version (no "
+"distributed transactions) and a version layered on the JTS. Recovery for the "
+"former is straightforward. In the following discussion we shall implicitly "
+"consider on the JTS implementation."
+msgstr ""
+"JBossTS は、純粋なローカルバージョン(分散トランザクションなし)と JTS 上で階"
+"層化されたバージョンの 2 つの JTA 実装をサポートしています。純粋なローカル"
+"バージョンのリカバリは簡単です。次の説明では、JTS 実装を暗黙的に考慮します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:285
+#, no-c-format
+msgid ""
+"Its behavior consists of two aspects: <emphasis>transaction-initiated</"
+"emphasis> and <emphasis>resource-initiated</emphasis> recovery. Transaction-"
+"initiated recovery is possible where the particular transaction branch had "
+"progressed far enough for a JTA Resource Record to be written in the "
+"ObjectStore, as illustrated in Figure 2."
+msgstr ""
+"動作には、<emphasis>トランザクション起動</emphasis>リカバリと<emphasis>リソー"
+"ス起動</emphasis>リカバリの 2 つの側面があります。図 2 の通り、JTA Resource "
+"Record が ObjectStore に書き込まれる状態になるまで特定のトランザクションブラ"
+"ンチが進行している場合、トランザクション起動リカバリを使用できます。"
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:292
+#, no-c-format
+msgid "JTA/JDBC information stored in the ObjectStore"
+msgstr "ObjectStore に保存される JTA/DBC 情報"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:294
+#, no-c-format
+msgid ""
+"A JTA Resource record contains the information needed to link the "
+"transaction, as known to the rest of JBossTS, to the database. Resource-"
+"initiated recovery is necessary for branches where a failure occurred after "
+"the database had made a persistent record of the transaction, but before the "
+"JTA ResourceRecord was persisted. Resource-initiated recovery is also "
+"necessary for datasources for which it is not possible to hold information "
+"in the JTA Resource record that allows the recreation in the RecoveryManager "
+"of the XAConnection/XAResource that was used in the original application."
+msgstr ""
+"JTA Resource レコードには、JBossTS が認識しているトランザクションをデータベー"
+"スにリンクするために必要な情報が含まれています。データベースがトランザクショ"
+"ンを永続的に記録した後、JTA ResourceRecord が永続化される前に障害が発生した場"
+"合、ブランチに対してリソース起動リカバリが必要となります。また、元のアプリ"
+"ケーションで使用された XAConnection/XAResource を RecoveryManager で再度作成"
+"できるようにする JTA Resource レコードに情報を保持できない場合、データソース"
+"に対してリソース起動リカバリが必要となります。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:298
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution. The contents of <property>com.arjuna.ats.jta.xaRecoveryNode</"
+"property> should be alphanumeric and match the values of <property>com."
+"arjuna.ats.arjuna.xa.nodeIdentifier</property>."
+msgstr ""
+"XA リカバリを実行する場合、JBossTS にリカバリできる Xid タイプを伝える必要が"
+"あります。JBossTS が作成する Xid には、各 Xid 固有のノード識別子がエンコード"
+"され、JBossTS は特定のノード識別子と一致するトランザクションや状態のみをリカ"
+"バリします。名前が <property>com.arjuna.ats.jta.xaRecoveryNode</property> で"
+"始まるプロパティより、使用するノード識別子を JBossTS へ提供しなければなりませ"
+"ん。複数の値を提供することもできます。「*」を値として指定すると、ノード識別子"
+"に関係なくすべてのトランザクションをリカバリ(場合によってはロールバック)す"
+"るよう JBossTS を強制することになるため、十分注意して使用するようにしてくださ"
+"い。<property>com.arjuna.ats.jta.xaRecoveryNode</property> の内容は英数字を使"
+"用し、<property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> の値と一致"
+"しなければなりません。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:302
+#, no-c-format
+msgid ""
+"Transaction-initiated recovery is automatic. The XARecoveryModule finds the "
+"JTA Resource Record that need recovery, then uses the normal recovery "
+"mechanisms to find the status of the transaction it was involved in (i.e., "
+"it calls replay_completion on the RecoveryCoordinator for the transaction "
+"branch), (re)creates the appropriate XAResource and issues commit or "
+"rollback on it as appropriate. The XAResource creation will use the same "
+"information, database name, username, password etc., as the original "
+"application."
+msgstr ""
+"トランザクション起動リカバリは自動的に実行されます。XARecoveryModule がリカバ"
+"リが必要な JTA Resource レコードを特定し、普通のリカバリメカニズムによって、"
+"関係しているトランザクションの状態を特定します (例:トランザクションブランチ"
+"に対して RecoveryCoordinator 上で replay_completion を呼び出す)。そして、適切"
+"な XAResource を(再)作成し、コミットまたはロールバックを発行します。"
+"XAResource の作成には、元のアプリケーションと同じ情報、データベース名、ユー"
+"ザー名、パスワードなどが使用されます。"
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:309
+#, no-c-format
+msgid "Transaction-Initiated Recovery and XA Recovery"
+msgstr "トランザクション起動リカバリと XA リカバリ "
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:311
+#, no-c-format
+msgid ""
+"Resource-initiated recovery has to be specifically configured, by supplying "
+"the Recovery Manager with the appropriate information for it to interrogate "
+"all the databases (XADataSources) that have been accessed by any JBossTS "
+"application. The access to each XADataSource is handled by a class that "
+"implements the <interfacename>com.arjuna.ats.jta.recovery."
+"XAResourceRecovery</interfacename> interface, as illustrated in Figure 4. "
+"Instances of classes that implements the XAResourceRecovery interface are "
+"dynamically loaded, as controlled by properties with names beginning "
+"<property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>."
+msgstr ""
+"リソース起動リカバリを設定するには、JBoss TS のアプリケーションがアクセスした"
+"全データベース (XADataSources) を問い合わせるために必要な情報を Recovery "
+"Manager に提供しなければなりません。図 4 の通り、各 XADataSource は "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename> インターフェイスを実証するクラスによって処理されます。"
+"XAResourceRecovery インターフェイスを実装するクラスのインスタンスは、動的に"
+"ロードされ、名前が <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"property> で始まるプロパティによって制御されます。"
+
+#. Tag: caption
+#: Architecture_of_the_Recovery_Manager.xml:318
+#, no-c-format
+msgid "Resource-initiated recovery and XA Recovery"
+msgstr "リソース起動リカバリと XA リカバリ"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:321
+#, no-c-format
+msgid ""
+"JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> was "
+"deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. "
+"Although the old interface still exists at the moment, users are encouraged "
+"to migrate to the new interface."
+msgstr ""
+"<interfacename>XAResourceRecovery</interfacename> の導入により、JBossTS 3.3 "
+"の <interfacename>XAConnectionRecovery</interfacename> は廃止されました。現在"
+"も古いインターフェイスは存在していますが、新しいインターフェイスへの移行を推"
+"奨します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:325
+#, no-c-format
+msgid ""
+"The XARecoveryModule will use the XAResourceRecovery implementation to get a "
+"XAResource to the target datasource. On each invocation of "
+"periodicWorkSecondPass, the recovery module will issue an XAResource.recover "
+"request – this will (as described in the XA specification) return a list of "
+"the transaction identifiers (Xid’s) that are known to the datasource and are "
+"in an indeterminate (in-doubt) state. The list of these in-doubt Xid’s "
+"received on successive passes (i.e. periodicWorkSecondPass-es) is compared. "
+"Any Xid that appears in both lists, and for which no JTA ResourceRecord was "
+"found by the intervening transaction-initiated recovery is assumed to belong "
+"to a transaction that was involved in a crash before any JTA ResourceRecord "
+"was written, and a rollback is issued for that transaction on the XAResource."
+msgstr ""
+"XARecoveryModule は XAResourceRecovery の実装を使用し、目的のデータソースに対"
+"してXAResource を取得します。periodicWorkSecondPass が呼び出されると、リカバ"
+"リモジュールは XAResource.recover 要求を発行します。これにより、(XA 仕様の通"
+"り)データーソースが認識する不確定状態のトランザクション識別子 (Xid) の一覧を"
+"返します。前後の受け渡し (例:periodicWorkSecondPass-es) が受け取った不確定 "
+"Xid の一覧が比較されます。両方の一覧に表示され、トランザクション起動リカバリ"
+"によって JTA ResourceRecord が見つからなかった Xid は、TA ResourceRecord が書"
+"き込まれる前に発生した障害に関するトランザクションのものと見なされ、"
+"XAResource のそのトランザクションに対してロールバックが発行されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:328
+#, no-c-format
+msgid ""
+"This double-scan mechanism is used because it is possible the Xid was "
+"obtained from the datasource just as the original application process was "
+"about to create the corresponding JTA_ResourceRecord. The interval between "
+"the scans should allow time for the record to be written unless the "
+"application crashes (and if it does, rollback is the right answer)."
+msgstr ""
+"この 2 重スキャンメカニズムが使用される理由は、元のアプリケーションプロセスが"
+"対応する JTA_ResourceRecord を作成しようとした時に Xid がデータソースより取得"
+"される可能性があるためです。スキャンの間隔は、アプリケーションがクラッシュし"
+"ない限りレコードを書き込むのに十分な時間間隔です(万が一クラッシュした場合"
+"は、ロールバックを行います)。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:331
+#, no-c-format
+msgid ""
+"An <classname>XAResourceRecovery</classname> implementation class can be "
+"written to contain all the information needed to perform recovery to some "
+"datasource. Alternatively, a single class can handle multiple datasources. "
+"The constructor of the implementation class must have an empty parameter "
+"list (because it is loaded dynamically), but the interface includes an "
+"initialise method which passes in further information as a string. The "
+"content of the string is taken from the property value that provides the "
+"class name: everything after the first semi-colon is passed as the value of "
+"the string. The use made of this string is determined by the "
+"<classname>XAResourceRecovery</classname> implementation class."
+msgstr ""
+"データソースのリカバリに必要な情報がすべて含まれるように "
+"<classname>XAResourceRecovery</classname> 実装クラスを書くことができます。ま"
+"た、1 つのクラスが複数のデータソースに対応するようにすることもできます。実装"
+"クラスのコンストラクタは空のパラメータリストを持たなければなりませんが(動的"
+"にロードされるため)、インターフェイスには追加情報をストリングとして渡す初期"
+"化メソッドが含まれます。ストリングの内容はクラス名を提供するプロパティ値より"
+"取得し、最初のセミコロン以降の内容が値としてストリングに渡されます。このスト"
+"リングの使用は <classname>XAResourceRecovery</classname> 実装クラスによって決"
+"定されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:334
+#, no-c-format
+msgid ""
+"For further details on the way to implement a class that implements the "
+"interface <interfacename>XAResourceRecovery</interfacename>, read the JDBC "
+"chapter of the JTA Programming Guide. An implementation class is provided "
+"that supports resource-initiated recovery for any XADataSource. This class "
+"could be used as a template to build your own implementation class."
+msgstr ""
+"<interfacename>XAResourceRecovery</interfacename> インターフェイスを実装する"
+"クラスの実装方法については、JTA プログラミングガイドの JDBC 章をご覧くださ"
+"い。XADataSource のリソース起動リカバリをサポートするため実装クラスが提供され"
+"ます。このクラスは、独自の実装クラスを作成するためのテンプレートとして使用で"
+"きます。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:338
+#, no-c-format
+msgid "Writing a Recovery Module"
+msgstr "リカバリモジュールを書く"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:339
+#, no-c-format
+msgid ""
+"In order to recover from failure, we have seen that the Recovery Manager "
+"contacts recovery modules by invoking periodically the methods "
+"<methodname>periodicWorkFirstPass</methodname> and "
+"<methodname>periodicWorkSecondPass</methodname>. Each Recovery Module is "
+"then able to manage recovery according to the type of resources that need to "
+"be recovered. The JBoss Transaction product is shipped with a set of "
+"recovery modules (TOReceveryModule, XARecoveryModule…), but it is possible "
+"for a user to define their own recovery module to fit their application. The "
+"following basic example illustrates the steps needed to build such recovery "
+"module"
+msgstr ""
+"障害をリカバリするため、Recovery Manager は "
+"<methodname>periodicWorkFirstPass</methodname> および "
+"<methodname>periodicWorkSecondPass</methodname> メソッドを定期的に呼び出し、"
+"リカバリモジュールに接触することを説明しました。これにより、各 Recovery "
+"Module はリカバリする必要があるリソースのタイプに基づき、リカバリを管理できる"
+"ようになります。JBoss Transaction 製品には一連のリカバリモジュール "
+"(TOReceveryModule、XARecoveryModule など) が同梱されていますが、アプリケー"
+"ションに適合する独自のリカバリモジュールを定義することもできます。次の例は、"
+"リカバリモジュールを作成するために必要な手順を表しています。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:342
+#, no-c-format
+msgid "A basic scenario"
+msgstr "基本的なシナリオ"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:343
+#, no-c-format
+msgid ""
+"This basic example does not aim to present a complete process to recover "
+"from failure, but mainly to illustrate the way to implement a recovery "
+"module."
+msgstr ""
+"この例は障害をリカバリするための完全なプロセスを表すものではなく、リカバリモ"
+"ジュールの実装例になります。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:345
+#, no-c-format
+msgid ""
+"The application used here consists to create an atomic transaction, to "
+"register a participant within the created transaction and finally to "
+"terminate it either by commit or abort. A set of arguments are provided:"
+msgstr ""
+"ここで使用されるアプリケーションは、アトミックトランザクションを作成してか"
+"ら、そのトランザクション内で参加者を登録し、最後にコミットまたはアボートを実"
+"行してトランザクションを終了します。以下を実行するため一連の引数が提供されま"
+"す。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:350
+#, no-c-format
+msgid "to decide to commit or abort the transaction,"
+msgstr "トランザクションのコミットまたはアボートを決定する"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:355
+#, no-c-format
+msgid "to decide generating a crash during the commitment process."
+msgstr "コミット処理の間にクラッシュを生成するか決定する"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:360
+#, no-c-format
+msgid "The code of the main class that control the application is given below"
+msgstr "アプリケーションを制御するメインクラスのコードは次の通りです。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:363
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.AtomicAction;\n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"        \n"
+"public class TestRecoveryModule\n"
+"{\n"
+"        public static void main(String args[])\n"
+"        {\n"
+"                try \n"
+"                {\n"
+"                        AtomicAction tx = new AtomicAction();\n"
+"                        tx.begin(); // Top level begin\n"
+"        \n"
+"                        // enlist the participant \n"
+"                        tx.add(SimpleRecord.create());\n"
+"        \n"
+"                        System.out.println(\"About to complete the "
+"transaction \");\n"
+"                        for (int i = 0; i &lt; args.length; i++)\n"
+"                        {\n"
+"                                if ((args[i].compareTo(\"-commit\") == 0))\n"
+"                                _commit = true;\n"
+"                                if ((args[i].compareTo(\"-rollback\") == "
+"0))\n"
+"                                _commit = false;\n"
+"                                if ((args[i].compareTo(\"-crash\") == 0))\n"
+"                                _crash = true;\n"
+"                        }\n"
+"                        if (_commit)\n"
+"                                tx.commit();  // Top level commit\n"
+"                        else \n"
+"                                tx.abort();  // Top level rollback\n"
+"                        } catch(Exception e) {\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"        }\n"
+"        protected static boolean _commit = true;\n"
+"        protected static boolean _crash = false;\n"
+"}"
+msgstr ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.AtomicAction;\n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"        \n"
+"public class TestRecoveryModule\n"
+"{\n"
+"        public static void main(String args[])\n"
+"        {\n"
+"                try \n"
+"                {\n"
+"                        AtomicAction tx = new AtomicAction();\n"
+"                        tx.begin(); // Top level begin\n"
+"        \n"
+"                        // enlist the participant \n"
+"                        tx.add(SimpleRecord.create());\n"
+"        \n"
+"                        System.out.println(\"About to complete the "
+"transaction \");\n"
+"                        for (int i = 0; i &lt; args.length; i++)\n"
+"                        {\n"
+"                                if ((args[i].compareTo(\"-commit\") == 0))\n"
+"                                _commit = true;\n"
+"                                if ((args[i].compareTo(\"-rollback\") == "
+"0))\n"
+"                                _commit = false;\n"
+"                                if ((args[i].compareTo(\"-crash\") == 0))\n"
+"                                _crash = true;\n"
+"                        }\n"
+"                        if (_commit)\n"
+"                                tx.commit();  // Top level commit\n"
+"                        else \n"
+"                                tx.abort();  // Top level rollback\n"
+"                        } catch(Exception e) {\n"
+"                        e.printStackTrace();\n"
+"                }\n"
+"        }\n"
+"        protected static boolean _commit = true;\n"
+"        protected static boolean _crash = false;\n"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:364
+#, no-c-format
+msgid "The registered participant has the following behavior:"
+msgstr "登録された参加者は以下のように動作します:"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:369
+#, no-c-format
+msgid ""
+"During the prepare phase, it writes a simple message - <emphasis>I’m "
+"prepared</emphasis>- on the disk such The message is written in a well known "
+"file."
+msgstr ""
+"準備段階で、<emphasis>I’m prepared</emphasis> という簡単なメッセージをディス"
+"ク上で既知のファイルに書き込みます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:374
+#, no-c-format
+msgid ""
+"During the commit phase, it writes another message - <emphasis>I’m "
+"committed</emphasis>- in the same file used during prepare."
+msgstr ""
+"コミット段階で、<emphasis>I’m committed</emphasis> というメッセージを準備段階"
+"で使用した同じファイルに書き込みます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:379
+#, no-c-format
+msgid ""
+"If it receives an abort message, it removes from the disk the file used for "
+"prepare if any."
+msgstr ""
+"アボートメッセージを受信した場合、準備段階で使用したファイルをディスクより削"
+"除します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:384
+#, no-c-format
+msgid ""
+"If a crash has been decided for the test, then it crashes during the commit "
+"phase – the file remains with the message <emphasis>I’m prepared</emphasis>."
+msgstr ""
+"テストに対してクラッシュの実行が決定された場合、コミット段階でクラッシュしま"
+"す。ファイルには <emphasis>I’m prepared</emphasis> というメッセージが保持され"
+"ます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:389
+#, no-c-format
+msgid ""
+"The main portion of the code illustrating such behavior is described "
+"hereafter."
+msgstr "上記のように動作するコードの主要部分は次の通りです。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:393
+#, no-c-format
+msgid "The location of the file given in variable filename can be changed"
+msgstr "変数 filename に指定するファイルの場所は変更可能です。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:397
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"import java.io.File;\n"
+"        \n"
+"public class SimpleRecord extends AbstractRecord {\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecord() {\n"
+"                System.out.println(\"Creating new resource\");\n"
+"        }\n"
+"        \n"
+"        public static AbstractRecord create()\n"
+"        {\n"
+"                return new SimpleRecord() ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelAbort()\n"
+"        {\n"
+"                try {\n"
+"                        File fd = new File(filename);\n"
+"                        if (fd.exists()){\n"
+"                                if (fd.delete())\n"
+"                                        System.out.println(\"File Deleted"
+"\");\n"
+"                        }\n"
+"        }\n"
+"        catch(Exception ex){…}\n"
+"                return TwoPhaseOutcome.FINISH_OK;\n"
+"        }\n"
+"        \n"
+"        public int topLevelCommit()\n"
+"        {\n"
+"                if (TestRecoveryModule._crash)\n"
+"                        System.exit(0);\n"
+"                try  {\n"
+"                        java.io.FileOutputStream file = new    \n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm Committed\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex) {...}\n"
+"                return TwoPhaseOutcome.FINISH_OK ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelPrepare()\n"
+"        {\n"
+"                try {\n"
+"                        java.io.FileOutputStream file = new\n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm prepared\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)  {...}\n"
+"                return  TwoPhaseOutcome.PREPARE_OK ;\n"
+"        }\n"
+"        …\n"
+"}"
+msgstr ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.coordinator.*;\n"
+"import java.io.File;\n"
+"        \n"
+"public class SimpleRecord extends AbstractRecord {\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecord() {\n"
+"                System.out.println(\"Creating new resource\");\n"
+"        }\n"
+"        \n"
+"        public static AbstractRecord create()\n"
+"        {\n"
+"                return new SimpleRecord() ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelAbort()\n"
+"        {\n"
+"                try {\n"
+"                        File fd = new File(filename);\n"
+"                        if (fd.exists()){\n"
+"                                if (fd.delete())\n"
+"                                        System.out.println(\"File Deleted"
+"\");\n"
+"                        }\n"
+"        }\n"
+"        catch(Exception ex){…}\n"
+"                return TwoPhaseOutcome.FINISH_OK;\n"
+"        }\n"
+"        \n"
+"        public int topLevelCommit()\n"
+"        {\n"
+"                if (TestRecoveryModule._crash)\n"
+"                        System.exit(0);\n"
+"                try  {\n"
+"                        java.io.FileOutputStream file = new    \n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm Committed\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex) {...}\n"
+"                return TwoPhaseOutcome.FINISH_OK ;\n"
+"        }\n"
+"        \n"
+"        public int topLevelPrepare()\n"
+"        {\n"
+"                try {\n"
+"                        java.io.FileOutputStream file = new\n"
+"                                java.io.FileOutputStream(filename);\n"
+"                        java.io.PrintStream pfile = new java.io.PrintStream"
+"(file);\n"
+"                        pfile.println(\"I'm prepared\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)  {...}\n"
+"                return  TwoPhaseOutcome.PREPARE_OK ;\n"
+"        }\n"
+"        …\n"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:398
+#, no-c-format
+msgid ""
+"The role of the Recovery Module in such application consists to read the "
+"content of the file used to store the status of the participant, to "
+"determine that status and print a message indicating if a recovery action is "
+"needed or not."
+msgstr ""
+"このようなアプリケーションにおける Recovery Module の役割は、参加者の状態を保"
+"存するために使用するファイルの内容を読み込んで参加者の状況を判断し、リカバリ"
+"が必要であるか否かをメッセージに表示することです。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:401
+#, no-c-format
+msgid ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.recovery.RecoveryModule;\n"
+"        \n"
+"public class SimpleRecoveryModule implements RecoveryModule\n"
+"{\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecoveryModule ()\n"
+"        {\n"
+"                System.out.println(\"The SimpleRecoveryModule is loaded\");\n"
+"        };\n"
+"        \n"
+"        public void periodicWorkFirstPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                                System.out.println(\"The transaction is in "
+"the prepared state\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk\"); }\n"
+"        }\n"
+"        \n"
+"        public void periodicWorkSecondPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                        {\n"
+"                                System.out.println(\"The record is still in "
+"the prepared state – Recovery is needed\");\n"
+"                        }\n"
+"                        else if (stringState.compareTo(\"I'm Committed\") == "
+"0)\n"
+"                        {\n"
+"                                System.out.println(\"The transaction has "
+"completed and committed\");     \n"
+"                        }\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk - Either "
+"there was \n"
+"                        no transaction or it as been rolled back\"); }\n"
+"        }\n"
+"}"
+msgstr ""
+"package com.arjuna.demo.recoverymodule;\n"
+"        \n"
+"import com.arjuna.ats.arjuna.recovery.RecoveryModule;\n"
+"        \n"
+"public class SimpleRecoveryModule implements RecoveryModule\n"
+"{\n"
+"        public String filename = \"c:/tmp/RecordState\";\n"
+"        public SimpleRecoveryModule ()\n"
+"        {\n"
+"                System.out.println(\"The SimpleRecoveryModule is loaded\");\n"
+"        };\n"
+"        \n"
+"        public void periodicWorkFirstPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                                System.out.println(\"The transaction is in "
+"the prepared state\");\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk\"); }\n"
+"        }\n"
+"        \n"
+"        public void periodicWorkSecondPass ()\n"
+"        {\n"
+"                try\n"
+"                {\n"
+"                        java.io.FileInputStream file = new \n"
+"                                java.io.FileInputStream(filename);\n"
+"                        java.io.InputStreamReader input = new \n"
+"                                java.io.InputStreamReader(file);\n"
+"                        java.io.BufferedReader reader = new java.io."
+"BufferedReader(input);\n"
+"                        String stringState = reader.readLine();\n"
+"                        if (stringState.compareTo(\"I'm prepared\") == 0)\n"
+"                        {\n"
+"                                System.out.println(\"The record is still in "
+"the prepared state – Recovery is needed\");\n"
+"                        }\n"
+"                        else if (stringState.compareTo(\"I'm Committed\") == "
+"0)\n"
+"                        {\n"
+"                                System.out.println(\"The transaction has "
+"completed and committed\");     \n"
+"                        }\n"
+"                        file.close();\n"
+"                }\n"
+"                catch (java.io.IOException ex)\n"
+"                { System.out.println(\"Nothing found on the Disk - Either "
+"there was \n"
+"                        no transaction or it as been rolled back\"); }\n"
+"        }\n"
+"}"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:402
+#, no-c-format
+msgid ""
+"The recovery module should now be deployed in order to be called by the "
+"Recovery Manager. To do so, we just need to add an entry in the "
+"<filename>RecoveryManager-properties.xml</filename> by adding a new property "
+"as follow:"
+msgstr ""
+"これで、リカバリモジュールがデプロイされたはずです。Recovery Manager による呼"
+"び出しを有効にするには、下記のように新しいプロパティを追加し、"
+"<filename>RecoveryManager-properties.xml</filename> にエントリを追加します。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:405
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+msgstr ""
+"&lt;property\n"
+"                 name=\"com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;"
+"i&gt;\"\n"
+"        value=\"com.arjuna.demo.recoverymodule.SimpleRecoveryModule\"/&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:406
+#, no-c-format
+msgid ""
+"Where &lt;i&gt; represent the new occurrence number that follows the last "
+"that already exists in the file. Once started, the Recovery Manager will "
+"automatically load the added Recovery module."
+msgstr ""
+"&lt;i&gt; は、ファイルに存在する発生番号の後に続く新しい番号を示しています。"
+"Recovery Manager が起動すると、追加されたリカバリモジュールが自動的にロードさ"
+"れます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:410
+#, no-c-format
+msgid ""
+"The source of the code can be retrieved under the trailmap directory of the "
+"JBossTS installation."
+msgstr ""
+"コードのソースは、JBossTS の trailmap ディレクトリ以下より取得できます。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:415
+#, no-c-format
+msgid "Another scenario"
+msgstr "他のシナリオ"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:416
+#, no-c-format
+msgid ""
+"As mentioned, the basic application presented above does not present the "
+"complete process to recover from failure, but it was just presented to "
+"describe how the build a recovery module. In case of the OTS protocol, let’s "
+"consider how a recovery module that manages recovery of OTS resources can be "
+"configured."
+msgstr ""
+"前述の通り、上記の基本アプリケーションは障害をリカバリするための完全なプロセ"
+"スではなく、リカバリモジュールの作成方法を示したものです。ここで、OTS プロト"
+"コルにおいて OTS リソースのリカバリを管理するリカバリモジュールの設定方法を考"
+"えてみましょう。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:420
+#, no-c-format
+msgid ""
+"To manage recovery in case of failure, the OTS specification has defined a "
+"recovery protocol. Transaction’s participants in a doubt status could use "
+"the RecoveryCoordinator to determine the status of the transaction. "
+"According to that transaction status, those participants can take "
+"appropriate decision either by roll backing or committing. Asking the "
+"RecoveryCoordinator object to determine the status consists to invoke the "
+"replay_completion operation on the RecoveryCoordinator."
+msgstr ""
+"障害のリカバリを管理するため、OTS 仕様にはリカバリプロトコルが定義されていま"
+"す。ダウト状態にあるトランザクションの参加者は、RecoveryCoordinate を使用して"
+"トランザクションの状態を判断することができます。参加者は、そのトランザクショ"
+"ンの状態を基にロールバックまたはコミットの実行を決定できます。"
+"RecoveryCoordinator オブジェクトにトランザクションの状態を判断するよう要求す"
+"ると、RecoveryCoordinator 上で replay_completion 操作が呼び出されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:423
+#, no-c-format
+msgid ""
+"For each OTS Resource in a doubt status, it is well known which "
+"RecoveyCoordinator to invoke to determine the status of the transaction in "
+"which the Resource is involved – It’s the RecoveryCoordinator returned "
+"during the Resource registration process. Retrieving such "
+"RecoveryCoordinator per resource means that it has been stored in addition "
+"to other information describing the resource."
+msgstr ""
+"ダウト状態にある各 OTS Resource の場合、Resource 登録プロセス中に返された "
+"RecoveryCoordinator を呼び出して Resource が関与するトランザクションの状態を"
+"判断します。リソースごとに RecoveryCoordinator を呼び出すことで、リソースの他"
+"の情報と共に保存されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:426
+#, no-c-format
+msgid ""
+"A recovery module dedicated to recover OTS Resources could have the "
+"following behavior. When requested by the recovery Manager on the first pass "
+"it retrieves from the disk the list of resources that are in the doubt "
+"status. During the second pass, if the resources that were retrieved in the "
+"first pass still remain in the disk then they are considered as candidates "
+"for recovery. Therefore, the Recovery Module retrieves for each candidate "
+"its associated RecoveryCoordinator and invokes the replay_completion "
+"operation that the status of the transaction. According to the returned "
+"status, an appropriate action would be taken (for instance, rollback the "
+"resource is the status is aborted or inactive)."
+msgstr ""
+"OTS Resource リカバリ専用のリカバリモジュールは次のように動作することができま"
+"す。最初の受け渡しで Recovery Manager から要求があると、ダウト状態にあるリ"
+"ソースの一覧をディスクより取得します。2 番目の受け渡しの間、最初の受け渡しで"
+"取得したリソースがディスクに保持されている場合、これらのリソースがリカバリ対"
+"象であるとみなされます。そのため、Recovery Module は各リカバリ対象リソースに"
+"関連する RecoveryCoordinator を取得し、replay_completion 操作を呼び出します。"
+"返された状態により適切な処理が行われます(例:状態がアボートまたは非アクティ"
+"ブである場合はリソースをロールバックする)。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:431
+#, no-c-format
+msgid "TransactionStatusConnectionManager"
+msgstr "TransactionStatusConnectionManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:432
+#, no-c-format
+msgid ""
+"The TransactionStatusConnectionManager object is used by the recovery "
+"modules to retrieve the status of transactions and acts like a proxy for "
+"TransactionStatusManager objects. It maintains a table of "
+"TransactionStatusConnector obects each of which connects to a "
+"TransactionStatusManager object in an Application Process."
+msgstr ""
+"リカバリモジュールは TransactionStatusConnectionManager オブジェクトを使用し"
+"てトランザクションの状態を取得します。TransactionStatusConnectionManager オブ"
+"ジェクトは TransactionStatusManager オブジェクトのプロキシのように動作し、ア"
+"プリケーションプロセスの TransactionStatusManager オブジェクトに接続する "
+"TransactionStatusConnector オブジェクトのテーブルを維持します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:435
+#, no-c-format
+msgid ""
+"The transactions status is retrieved using the getTransactionStatus methods "
+"which take a transaction Uid and if available a transaction type as "
+"parameters. The process Uid field in the transactions Uid parameter is used "
+"to lookup the target TransactionStatusManagerItem host/port pair in the "
+"Object Store. The host/port pair are used to make a TCP connection to the "
+"target TransactionStatusManager object by a TransactionStatusConnector "
+"object. The TransactionStatusConnector passes the transaction Uid/"
+"transaction type to the TransactionStatusManager in order to retrieve the "
+"transactions status."
+msgstr ""
+"トランザクションの状態は、トランザクション Uid とトランザクションタイプ(存在"
+"する場合)をパラメータとして取る getTransactionStatus メソッドを使用して取得"
+"します。トランザクション Uid パラメータのプロセス Uid フィールドは、Object "
+"Store にある目的の TransactionStatusManagerItem のホスト/ポートのペアをルッ"
+"クアップするために使用されます。ホスト/ポートのペアは、"
+"TransactionStatusConnector オブジェクトにて目的の TransactionStatusManager オ"
+"ブジェクトへ TCP 接続するために使用されます。トランザクションの状態を取得する"
+"ため、TransactionStatusConnector はトランザクション Uid とトランザクションタ"
+"イプを TransactionStatusManager に渡します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:440
+#, no-c-format
+msgid "Expired Scanner Thread"
+msgstr "期限切れスキャナスレッド"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:441
+#, no-c-format
+msgid ""
+"When the Recovery Manager initialises an expiry scanner thread "
+"ExpiryEntryMonitor is created which is used to remove long dead items from "
+"the ObjectStore. A number of scanner modules are dynamically loaded which "
+"remove long dead items for a particular type."
+msgstr ""
+"Recovery Manager が有効期限スキャナスレッドを初期化すると、長期不要であった項"
+"目を ObjectStore より削除するため使用する ExpiryEntryMonitor が作成されます。"
+"複数のスキャナモジュールが動的にロードされ、特定タイプの長期不要項目を削除し"
+"ます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:444
+#, no-c-format
+msgid ""
+"Scanner modules are loaded at initialisation and are specified as properties "
+"beginning with"
+msgstr ""
+"スキャナモジュールは初期化時にロードされ、下記で始まるプロパティとして指定さ"
+"れます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:447
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner "
+"Class&gt;"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:448
+#, no-c-format
+msgid ""
+"All the scanner modules are called periodically to scan for dead items by "
+"the ExpiryEntryMonitor thread. This period is set with the property:"
+msgstr ""
+"ExpiryEntryMonitor スレッドによって不要項目をスキャンするため、すべてのスキャ"
+"ナモジュールは周期的に呼び出されます。周期は次のプロパティで設定することがで"
+"きます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:451
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+msgstr "com.arjuna.ats.arjuna.recovery.expiryScanInterval"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:452
+#, no-c-format
+msgid ""
+"All scanners inherit the same behaviour from the java interface "
+"<interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:"
+msgstr ""
+"下図の通り、すべてのスキャナは java インターフェイスの "
+"<interfacename>ExpiryScanner</interfacename> より同じ動作を継承します。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:460
+#, no-c-format
+msgid ""
+"A scan method is provided by this interface and implemented by all scanner "
+"modules, this is the method that gets called by the scanner thread."
+msgstr ""
+"スキャンメソッドはこのインターフェイスによって提供され、すべてのスキャンモ"
+"ジュールによって実装されます。これが、スキャナスレッドによって呼び出されるメ"
+"ソッドになります。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:463
+#, no-c-format
+msgid ""
+"The ExpiredTransactionStatusManagerScanner removes long dead "
+"TransactionStatusManagerItems from the Object Store. These items will remain "
+"in the Object Store for a period of time before they are deleted. This time "
+"is set by the property:"
+msgstr ""
+"ExpiredTransactionStatusManagerScanner は、長期不要であった "
+"TransactionStatusManagerItems を Object Store より削除します。"
+"TransactionStatusManagerItems は一定期間 Object Store で保持された後に削除さ"
+"れます。保持する期間は下記のプロパティで設定できます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:466
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:467
+#, no-c-format
+msgid "(default 12 hours)"
+msgstr "(デフォルトは 12 時間です)"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:472
+#, no-c-format
+msgid "Application Process"
+msgstr "アプリケーションプロセス"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:473
+#, no-c-format
+msgid ""
+"This represents the user transactional program. A Local transaction (hash) "
+"table, maintained within the running application process keeps trace of the "
+"current status of all transactions created by that application process, The "
+"Recovery Manager needs access to the transaction tables so that it can "
+"determine whether a transaction is still in progress, if so then recovery "
+"does not happen."
+msgstr ""
+"アプリケーションプロセスはユーザートランザクションプログラムを示します。実行"
+"されているアプリケーションプロセス内で維持されるローカルトランザクション"
+"(ハッシュ)テーブルは、そのアプリケーションプロセスによって作成されたトラン"
+"ザクションの現在の状態を追跡します。Recovery Manager はトランザクションテーブ"
+"ルにアクセスする必要があるため、トランザクションが実行中であるか判断すること"
+"ができます。トランザクションが実行中の場合、リカバリは実行されません。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:476
+#, no-c-format
+msgid ""
+"The transaction tables are accessed via the TransactionStatusManager object. "
+"On application program initialisation the host/port pair that represents the "
+"TransactionStatusManager is written to the Object Store in '../Recovery/"
+"TransactionStatusManager’ part of the Object Store file hierarchy and "
+"identified by the process Uid of the application process."
+msgstr ""
+"トランザクションテーブルは TransactionStatusManager オブジェクトを通じてアク"
+"セスされます。アプリケーションプログラムの初期化時、TransactionStatusManager "
+"を示すホスト/ポートのペアが Object Store ファイル階層の「'../Recovery/"
+"TransactionStatusManager」部分内の Object Store に書き込まれ、アプリケーショ"
+"ンプロセスのプロセス Uid によって識別されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:479
+#, no-c-format
+msgid ""
+"The Recovery Manager uses the TransactionStatusConnectionManager object to "
+"retrieve the status of a transaction and a TransactionStatusConnector object "
+"is used to make a TCP connection to the TransactionStatusManager."
+msgstr ""
+"Recovery Manager は TransactionStatusConnectionManager オブジェクトを使用して"
+"トランザクションの状態を取得し、TransactionStatusConnector オブジェクトを使用"
+"して TransactionStatusManager への TCP 接続を確立します。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:484
+#, no-c-format
+msgid "TransactionStatusManager"
+msgstr "TransactionStatusManager"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:485
+#, no-c-format
+msgid ""
+"This object acts as an interface for the Recovery Manager to obtain the "
+"status of transactions from running HPTS application processes. One "
+"TransactionStatusManager is created per application process by the class com."
+"arjuna.ats.arjuna.coordinator.InitAction. Currently a tcp connection is used "
+"for communication between the RecoveryManager and TransactionStatusManager. "
+"Any free port is used by the TransactionStatusManager by default, however "
+"the port can be fixed with the property:"
+msgstr ""
+"このオブジェクトは Recovery Manager のインターフェイスとして動作し、実行され"
+"ている HPTS アプリケーションプロセスよりトランザクションの状態を取得します。"
+"class com.arjuna.ats.arjuna.coordinator.InitAction によってアプリケーションプ"
+"ロセス毎に 1 つの TransactionStatusManager が作成されます。現在、"
+"RecoveryManager と TransactionStatusManager 間の通信には TCP 接続が使用されま"
+"す。TransactionStatusManager はデフォルトで任意の空きポートを使用しますが、次"
+"のプロパティでポートを固定することもできます。"
+
+#. Tag: screen
+#: Architecture_of_the_Recovery_Manager.xml:488
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+msgstr "com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:489
+#, no-c-format
+msgid ""
+"On creation the TransactionStatusManager obtains a port which it stores with "
+"the host in the Object Store as a TransactionStatusManagerItem. A Listener "
+"thread is started which waits for a connection request from a "
+"TransactionStatusConnector. When a connection is established a Connection "
+"thread is created which runs a Service (AtomicActionStatusService) which "
+"accepts a transaction Uid and a transaction type (if available) from a "
+"TransactionStatusConnector, the transaction status is obtained from the "
+"local thransaction table and returned back to the TransactionStatusConnector."
+msgstr ""
+"TransactionStatusManager が作成されると、TransactionStatusManagerItem として "
+"Object Store にホストと共に保存するポートを取得します。リスナスレッドが起動"
+"し、TransactionStatusConnector からの接続要求を待ちます。接続が確立されると "
+"Connection スレッドが作成され、TransactionStatusConnector からのトランザク"
+"ション Uid とトランザクションタイプ(存在する場合)を許可する Service  "
+"(AtomicActionStatusService) が実行されます。トランザクションの状態はローカル"
+"のトランザクションテーブルより取得され、TransactionStatusConnector に返されま"
+"す。"
+
+#. Tag: title
+#: Architecture_of_the_Recovery_Manager.xml:494
+#, no-c-format
+msgid "Object Store"
+msgstr "Object Store"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:495
+#, no-c-format
+msgid ""
+"All objects are stored in a file path which is equivalent to their class "
+"inheritance. Thus AtomicAction transactions are stored in file path ../"
+"StateManager/BasicAction/AtomicAction."
+msgstr ""
+"すべてのオブジェクトはクラス継承と同等のファイルパスで保存されます。よって、"
+"AtomicAction トランザクションは「 ../StateManager/BasicAction/AtomicAction」"
+"に保存されます。"
+
+#. Tag: para
+#: Architecture_of_the_Recovery_Manager.xml:498
+#, no-c-format
+msgid ""
+"All objects are identified by a unique identifier Uid. One of the values of "
+"which is a process id in which the object was created. The Recovery Manager "
+"uses the process id to locate transaction status manager items when "
+"contacting the originator application process for the transaction status."
+msgstr ""
+"オブジェクトは固有の Uid によって識別されます。その値の 1 つが、オブジェクト"
+"が作成されたプロセスの ID になります。Recovery Manager は、トランザクションの"
+"状態を取得するため元のアプリケーションプロセスに接触する際、プロセス IDを使用"
+"してトランザクションステータスマネージャの項目を探します。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 11:40+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat ドキュメンテーショングループ"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,51 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-08-05 11:45+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, fuzzy, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr "トランザクション障害リカバリガイド"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+"この本は、Enterprise Application Platform 版の JBoss トランザクション障害リカ"
+"バリガイドです。"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "ロゴ"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/How_JBossTS_managers_the_OTS_Recovery_Protocol.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,942 @@
+# translation of How_JBossTS_managers_the_OTS_Recovery_Protocol.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: How_JBossTS_managers_the_OTS_Recovery_Protocol\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-08-18 11:33+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:6
+#, no-c-format
+msgid "How JBossTS manages the OTS Recovery Protocol"
+msgstr "JBossTS による OTS リカバリプロトコルの管理方法"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:10
+#, no-c-format
+msgid "Recovery Protocol in OTS-Overview"
+msgstr "OTS のリカバリプロトコル - 概要"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:11
+#, no-c-format
+msgid ""
+"To manage recovery in case of failure, the OTS specification has defined a "
+"recovery protocol. Transaction’s participants in a doubt status could use "
+"the RecoveryCoordinator to determine the status of the transaction. "
+"According to that transaction status, those participants can take "
+"appropriate decision either by roll backing or committing."
+msgstr ""
+"障害が発生した際にリカバリを管理するため、OTS の仕様にはリカバリプロトコルが"
+"定義されています。ダウト状態にあるトランザクションの参加者は、"
+"RecoveryCoordinator を使用してトランザクションの状態を判断することができま"
+"す。参加者はこのトランザクションの状態を基にロールバックまたはコミットを実行"
+"します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:14
+#, no-c-format
+msgid ""
+"A reference to a RecoveryCoordinator is returned as a result of successfully "
+"calling register_resource on the transaction Coordinator. This object, which "
+"is implicitly associated with a single Resource, can be used to drive the "
+"Resource through recovery procedures in the event of a failure occurring "
+"during the transaction."
+msgstr ""
+"トランザクション Coordinator上で register_resource の呼び出しに成功すると、"
+"RecoveryCoordinator への参照が返されます。このオブジェクトは暗黙的に単一の "
+"Resource へ関連付けられおり、トランザクションの間に障害が発生した場合、リカバ"
+"リ手順で Resource に対応するために使用することができます。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:21
+#, no-c-format
+msgid "Resource and RecoveryCoordinator relationship."
+msgstr "リソースと RecoveryCoordinator の関係"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:26
+#, no-c-format
+msgid "RecoveryCoordinator in JBossTS"
+msgstr "JBossTS の RecoveryCoordinator"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:27
+#, no-c-format
+msgid ""
+"On each resource registration a RecoveryCoordinator Object is expected to be "
+"created and returned to the application that invoked the register_resource "
+"operation. Behind each CORBA object there should be an object implementation "
+"or Servant object, in POA terms, which performs operations made on a "
+"RecoveryCoordinator object. Rather than to create a RecoveryCoordinator "
+"object with its associated servant on each register_resource, JBossTS "
+"enhances performance by avoiding the creation of servants but it relies on a "
+"default RecoveryCoordinator object with it’s associated default servant to "
+"manage all replay_completion invocations."
+msgstr ""
+"リソースが登録される度に RecoveryCoordinator オブジェクトが作成され、"
+"register_resource 操作を呼び出したアプリケーションに返されるはずです。各 "
+"CORBA オブジェクトの裏には、RecoveryCoordinator オブジェクトで操作を実行する"
+"オブジェクト実装または Servant オブジェクト(POA 用語)があるはずです。"
+"JBossTS は、関連するサーバントを各 register_resource 持つ "
+"RecoveryCoordinator オブジェクトを作成するのではなく、サーバントを作成せずに"
+"パフォーマンスを向上するため、関連するデフォルトのサーバントを持つデフォルト"
+"の RecoveryCoordinator オブジェクトに依存し、すべての replay_completion 呼び"
+"出しを管理します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:30
+#, no-c-format
+msgid ""
+"In the next sections we first give an overview of the Portable Object "
+"Adapter architecture, then we describe how this architecture is used to "
+"provide RecoveryCoordinator creation with optimization as explained above."
+msgstr ""
+"はじめに、ポータブルオブジェクトアダプタ (Portable Object Adapter) アーキテク"
+"チャの概要について次以降の項で説明します。次に、上記の通り最適化された "
+"RecoveryCoordinator の作成を提供するため、このアーキテクチャを使用する方法を"
+"説明します。"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:34
+#, no-c-format
+msgid "Understanding POA"
+msgstr "POA を理解する"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:35
+#, no-c-format
+msgid ""
+"Basically, the Portable Object Adapter, or POA is an object that intercepts "
+"a client request and identifies the object that satisfies the client "
+"request. The Object is then invoked and the response is returned to the "
+"client."
+msgstr ""
+"基本的に、ポータブルオブジェクトアダプタ (POA) とはクライアント要求を阻止し、"
+"そのクライアント要求を満たすオブジェクトを特定するオブジェクトのことです。オ"
+"ブジェクトはその後呼び出され、応答がクライアントへ返されます。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:43
+#, no-c-format
+msgid "Overview of the POA."
+msgstr "POA の概要"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:45
+#, no-c-format
+msgid ""
+"The object that performs the client request is referred as a servant, which "
+"provides the implementation of the CORBA object requested by the client. A "
+"servant provides the implementation for one or more CORBA object references. "
+"To retreive a servant, each POA maintains an Active Object Map that maps all "
+"objects that have been activated in the POA to a servant. For each incoming "
+"request, the POA looks up the object reference in the Active Object Map and "
+"tries to find the responsible servant. If none is found, the request is "
+"either delegated to a default servant, or a servant manager is invoked to "
+"activate or locate an appropriate servant. In addition to the name space for "
+"the objects, which are identified by Object Ids, a POA also provides a name "
+"space for POAs. A POA is created as a child of an existing POA, which forms "
+"a hierarchy starting with the root POA."
+msgstr ""
+"クライアント要求を実行するオブジェクトはサーバントと呼ばれ、クライアントに"
+"よって要求された CORBA オブジェクトの実装を提供します。サーバントは 1 つ以上"
+"の CORBA オブジェクト参照を提供します。サーバントを取得するため、各 POA は "
+"POA でアクティブになったすべてのオブジェクトをサーバントへマップする Active "
+"Object Map を保持します。各着信要求に対して、POA は Active Object Map 内でオ"
+"ブジェクト参照をルックアップし、関与するサーバントを見つけようとします。関与"
+"するサーバントがない場合は、要求がデフォルトのサーバントに委譲されるか、適切"
+"なサーバントをアクティブ化または検索するためにサーバントマネージャが呼び出さ"
+"れます。POA は、Object ID によって指定されるオブジェクトの名前空間だけでな"
+"く、POA の名前空間も提供します。POA は既存 POA の子として作成され、ルート "
+"POA から始まる階層を形成します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:48
+#, no-c-format
+msgid ""
+"Each POA has a set of policies that define its characteristics. When "
+"creating a new POA, the default set of policies can be used or different "
+"values can be assigned that suit the application requirements. The POA "
+"specification defines:"
+msgstr ""
+"各 POA は特性を定義する一連のポリシーを持っています。新しい POA を作成する"
+"際、デフォルトのポリシーセットを使用するか、アプリケーションの要件に合う値を"
+"適応することができます。POA の仕様は次を定義します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:53
+#, no-c-format
+msgid ""
+"<emphasis>Thread policy:</emphasis> Specifies the threading model to be used "
+"by the POA. Possible values are:"
+msgstr ""
+"<emphasis>スレッドポリシー:</emphasis> POA が仕様するスレッディングモデルを指"
+"定します。指定可能な値は次の通りです。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:58
+#, no-c-format
+msgid ""
+"ORB_CTRL_MODEL (default): The POA is responsible for assigning requests to "
+"threads."
+msgstr "ORB_CTRL_MODEL (デフォルト): POA がスレッドに要求を割り当てます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:63
+#, no-c-format
+msgid "SINGLE_THREAD_MODEL: The POA processes requests sequentially"
+msgstr "SINGLE_THREAD_MODEL: POA は要求を順次処理します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:70
+#, no-c-format
+msgid ""
+"<emphasis>Lifespan policy:</emphasis> Specifies the lifespan of the objects "
+"implemented in the POA. The lifespan policy can have the following values:"
+msgstr ""
+"<emphasis>ライフスパンポリシー:</emphasis> POA に実装されたオブジェクトのライ"
+"フスパンを指定します。ライフスパンポリシーに指定できる値は次の通りです。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:75
+#, no-c-format
+msgid ""
+"TRANSIENT (Default) Objects implemented in the POA cannot outlive the "
+"process in which they are first created. Once the POA is deactivated, an "
+"OBJECT_NOT_EXIST exception occurs when attempting to use any object "
+"references generated by the POA."
+msgstr ""
+"POA に実装された TRANSIENT (デフォルト) オブジェクトは、最初にそのオブジェク"
+"トが作成されたプロセスよりも長く存在することはできません。POA が非アクティブ"
+"になった後に、POA が生成したオブジェクト参照を使用しようとすると、"
+"OBJECT_NOT_EXIST 例外が発生します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:80
+#, no-c-format
+msgid ""
+"PERSISTENT Objects implemented in the POA can outlive the process in which "
+"they are first created."
+msgstr ""
+"POA に実装された PERSISTENT オブジェクトは、最初にそのオブジェクトが作成され"
+"たプロセスが終了した後も存在することが可能です。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:87
+#, no-c-format
+msgid ""
+"Object ID Uniqueness policy: Allows a single servant to be shared by many "
+"abstract objects. The Object ID Uniqueness policy can have the following "
+"values:"
+msgstr ""
+"オブジェクト ID 一意性ポリシー:複数の抽象オブジェクトが 1 つのサーバントを共"
+"有できるようにします。オブジェクト ID 一意性ポリシーには次の値を指定すること"
+"ができます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:92
+#, no-c-format
+msgid "UNIQUE_ID (Default): Activated servants support only one Object ID."
+msgstr ""
+"UNIQUE_ID (デフォルト): アクティブになったサーバントは 1 つの Object ID のみ"
+"サポートします。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:97
+#, no-c-format
+msgid ""
+"MULTIPLE_ID: Activated servants can have one or more Object IDs. The Object "
+"ID must be determined within the method being invoked at run time."
+msgstr ""
+"MULTIPLE_ID: アクティブになったサーバントは 1 つ以上の Object ID を持つことが"
+"できます。実行時に呼び出されたメソッド内で Object ID を決定しなければなりませ"
+"ん。 "
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:104
+#, no-c-format
+msgid ""
+"ID Assignment policy: Specifies whether object IDs are generated by server "
+"applications or by the POA. The ID Assignment policy can have the following "
+"values:"
+msgstr ""
+"ID 割り当てポリシー: サーバーアプリケーションと POA のどちらでオブジェクト "
+"ID を生成するか指定します。ID 割り当てポリシーには次の値を指定できます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:109
+#, no-c-format
+msgid "USER_ID is for persistent objects, and"
+msgstr "USER_ID は永続オブジェクト用です。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:114
+#, no-c-format
+msgid "SYSTEM_ID is for transient objects."
+msgstr "SYSTEM_ID は一時オブジェクト用です。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:121
+#, no-c-format
+msgid ""
+"Servant Retention policy: Specifies whether the POA retains active servants "
+"in the Active Object Map. The Servant Retention policy can have the "
+"following values:"
+msgstr ""
+"サーバント保持ポリシー: Active Object Map のアクティブサーバントを POA が保持"
+"するか指定します。サーバント保持ポリシーには次の値を指定できます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:126
+#, no-c-format
+msgid ""
+"RETAIN (Default) The POA tracks object activations in the Active Object Map. "
+"RETAIN is usually used with ServantActivators or explicit activation methods "
+"on POA."
+msgstr ""
+"RETAIN (デフォルト) を指定すると、Active Object Map におけるオブジェクトのア"
+"クティブ化を POA が追跡します。RETAIN は通常、ServantActivators または POA 上"
+"の明示的アクティブ化メソッドと共に使用されます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:131
+#, no-c-format
+msgid ""
+"NON_RETAIN The POA does not retain active servants in the Active Object Map. "
+"NON_RETAIN is typically used with ServantLocators."
+msgstr ""
+"NON_RETAIN を指定すると、POA は アクティブなサーバントを Active Object Map 内"
+"に保持しません。NON_RETAIN は通常、ServantLocators と共に使用されます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:138
+#, no-c-format
+msgid ""
+"Request Processing policy: Specifies how requests are processed by the POA."
+msgstr "要求処理ポリシー: POA によって要求を処理する方法を指定します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:143
+#, no-c-format
+msgid ""
+"USE_ACTIVE_OBJECT_MAP (Default): If the Object ID is not listed in the "
+"Active Object Map, an OBJECT_NOT _EXIST exception is returned. The POA must "
+"also use the RETAIN policy with this value."
+msgstr ""
+"USE_ACTIVE_OBJECT_MAP (デフォルト): Object ID がActive Object Map にリストさ"
+"れていない場合、OBJECT_NOT _EXIST 例外が返されます。また、POA はこの値で "
+"RETAIN ポリシーを使用しなければなりません。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:148
+#, no-c-format
+msgid ""
+"USE_DEFAULT_SERVANT: If the Object ID is not listed in the Active Object Map "
+"or the NON_RETAIN policy is set, the request is dispatched to the default "
+"servant. If no default servant has been registered, an OBJ_ADAPTER exception "
+"is returned. The POA must also use the MULTIPLE_ID policy with this value."
+msgstr ""
+"USE_DEFAULT_SERVANT: Object ID が Active Object Map にリストされていなかった"
+"り、NON_RETAIN ポリシーが設定されている場合、要求はデフォルトのサーバントに送"
+"られます。デフォルトのサーバントが設定されていない場合、OBJ_ADAPTER 例外が返"
+"されます。また、POA はこの値で MULTIPLE_ID ポリシーを使用しなければなりませ"
+"ん。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:153
+#, no-c-format
+msgid ""
+"USE_SERVANT_MANAGER: If the Object ID is not listed in the Active Object Map "
+"or the NON_RETAIN policy is set, the servant manager is used to obtain a "
+"servant."
+msgstr ""
+"USE_SERVANT_MANAGER: Object ID が Active Object Map にリストされていなかった"
+"り、NON_RETAIN ポリシーが設定されている場合、サーバントマネージャを使用して"
+"サーバントを取得します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:160
+#, no-c-format
+msgid ""
+"Implicit Activation policy: Specifies whether the POA supports implicit "
+"activation of servants. The Implicit Activation policy can have the "
+"following values:"
+msgstr ""
+"暗黙的アクティブ化ポリシー: サーバントの暗示的なアクティブ化を POA がサポート"
+"するか指定します。暗黙的アクティブ化ポリシーには次の値を指定できます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:165
+#, no-c-format
+msgid ""
+"IMPLICIT_ACTIVATION: The POA supports implicit activation of servants. "
+"Servants can be activated by converting them to an object reference with "
+"<methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> "
+"or by invoking <methodname>_this()</methodname> on the servant. The POA must "
+"also use the SYSTEM_ID and RETAIN policies with this value."
+msgstr ""
+"IMPLICIT_ACTIVATION: POA はサーバントの暗黙的なアクティブ化をサポートします。"
+"サーバントをアクティブにするには、<methodname>org.omg.PortableServer.POA."
+"servant_to_reference()</methodname> でサーバントをオブジェクト参照に変換する"
+"か、サーバントで <methodname>_this()</methodname> を呼び出します。また、POA "
+"はこの値で SYSTEM_ID ポリシーおよび RETAIN ポリシーを使用しなければなりませ"
+"ん。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:170
+#, no-c-format
+msgid ""
+"NO_IMPLICIT_ACTIVATION (Default): The POA does not support implicit "
+"activation of servants."
+msgstr ""
+"NO_IMPLICIT_ACTIVATION (デフォルト):POA はサーバントの暗示的なアクティブ化を"
+"サポートしません。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:177
+#, fuzzy, no-c-format
+msgid ""
+"It appears that to redirect replay_completion invocations to a default "
+"servant we need to create a POA with the Request Processing policy assigned "
+"with the value set to USE_DEFAULT_SERVANT. However to reach that default "
+"Servant we should first reach the POA that forward the request to the "
+"default servant. Indeed, the ORB uses a set of information to retrieve a "
+"POA; these information are contained in the object reference used by the "
+"client. Among these information there are the IP address and the port number "
+"where resides the server and also the POA name. JBossTS provides one servant "
+"per machine to perform replay_completion invocations. This servant is "
+"located in the RecoveryManager process. The RecoveryManager process is a "
+"separate process from the client and server applications. The next section "
+"explains how the indirection to a default Servant located on a separate "
+"process is provided for ORBIX and for JacORB."
+msgstr ""
+"replay_completion の呼び出しをデフォルトのサーバントにリダイレクトするには、"
+"要求処理ポリシーに USE_DEFAULT_SERVANT が設定された POA を作成する必要があり"
+"ますが、デフォルトのサーバントにアクセスするには、最初に要求をデフォルトの"
+"サーバントに転送する POA にアクセスしなければなりません。ORB は一連の情報を使"
+"用して POA を取得しますが、この情報はクライアントが使用するオブジェクト参照に"
+"含まれています。この情報には、サーバーがある場所の IP アドレスやポート番号、"
+"POA 名が含まれています。JBossTS はマシンごとに 1 つのサーバントを提供し、"
+"replay_completion 呼び出しを実行します。このサーバントは RecoveryManager プロ"
+"セス内にあります。RecoveryManager プロセスはクライアントアプリケーションや"
+"サーバーアプリケーションとは別のプロセスです。次の項では、ORBIX および "
+"JacORB に対して、個別のプロセスにあるデフォルトサーバントへの間接参照がどのよ"
+"うに提供されるか説明します。"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:182
+#, no-c-format
+msgid "The default RecoveryCoordinator in Orbix"
+msgstr "Orbix におけるデフォルトの RecoveryCoordinator"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:183
+#, no-c-format
+msgid ""
+"Within Orbix, objects are located by the Location Deamon. To avoid the "
+"overhead of using the location daemon, Orbix provides a mechanism named "
+"<emphasis>Direct Persistence</emphasis> allowing generating persistent "
+"object references. This mechanism is in fact a proprietary policy named, "
+"DIRECT_PERSISTENCE. A POA with policies of PERSISTENT and DIRECT_PERSISTENCE "
+"generates IORs that contain a well-known address for the server process. A "
+"POA that uses direct persistence must also tell each transport mechanism "
+"such as IIOP where in the configuration file it can find the well-known "
+"address that it should use. This is done by creating a "
+"<code>WellKnownAddressingPolicy</code> object and setting its value to the "
+"configuration scope that contains the well-known address."
+msgstr ""
+"Orbix 内では、オブジェクトは Location Deamon によって配置されます。ロケーショ"
+"ンデーモンを使用する際にオーバーヘッドが発生しないようにするため、Orbix は永"
+"続オブジェクト参照を生成できる <emphasis>直接永続化</emphasis> というメカニズ"
+"ムを提供します。このメカニズムは DIRECT_PERSISTENCE というプロプライタリポリ"
+"シーです。PERSISTENT ポリシーおよび DIRECT_PERSISTENCE ポリシーを持つ POA "
+"は、サーバー処理用の予約済みアドレスを持つ IOR を生成します。また、直接永続化"
+"を使用する POA は、IIOP などの各トランスポートメカニズムに対し、使用する予約"
+"済みアドレスが設定ファイルのどこにあるか伝えなければなりません。これを実行す"
+"るには、<code>WellKnownAddressingPolicy</code> オブジェクトを作成し、予約済み"
+"アドレスを持つ設定スコープにその値を設定します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:186
+#, no-c-format
+msgid ""
+"To specify the address used by the <code>WellKnownAddressingPolicy</code> "
+"object, JBossTS uses the Orbix mechanism that allows specifying an ORB/POA "
+"names. The following configuration modifications are necessary to define the "
+"well-know address of the RecoveryCoordinator performing replay_completion "
+"invocation."
+msgstr ""
+"<code>WellKnownAddressingPolicy</code> オブジェクトが使用するアドレスを指定す"
+"るため、JBossTS は ORB/POA 名を指定できる Orbix のメカニズムを使用します。"
+"replay_completion を呼び出す RecoveryCoordinator の予約済みアドレスを定義する"
+"には、設定を次のように変更する必要があります。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:190
+#, no-c-format
+msgid ""
+"Note that this configuration is also necessary to support transaction "
+"context propagation and interposition."
+msgstr ""
+"また、この設定はトランザクションコンテキストの伝搬や割り込みをサポートするた"
+"めにも必要です。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:194
+#, no-c-format
+msgid ""
+"A new orb name domain called arjuna should be created within the main Orbix "
+"2000 domain being used by the application. It requires the following format:"
+msgstr ""
+"アプケーションが使用するメイン Orbix 2000 ドメイン内に arjuna という新しい "
+"orb 名前ドメインが作成されるはずです。これには、次の形式が必要です。"
+
+#. Tag: screen
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:197
+#, no-c-format
+msgid ""
+"arjuna\n"
+"{\n"
+"        portable_interceptor\n"
+"        {\n"
+"                orb_plugins = [\"local_log_stream\", \"iiop_profile\", \"giop"
+"\", \"iiop\", \"portable_interceptor\"];\n"
+"        \n"
+"                ots_recovery_coordinator\n"
+"                {\n"
+"                        recovery_coordinator:iiop:addr_list = [“&lt;name&gt;:"
+"&lt;port&gt;”];\n"
+"                };\n"
+"                        \n"
+"                ots_transaction\n"
+"                {\n"
+"                        transaction:iiop:addr_list = [“+&lt;name&gt;:&lt;"
+"port&gt;”];\n"
+"                };     \n"
+"                ots_context\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Context\", "
+"\"OTS_Context+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Context+GIOP+IIOP\", \"GIOP"
+"+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Context\", "
+"\"\"];\n"
+"                };\n"
+"                                        \n"
+"                ots_interposition\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Interposition"
+"\", \"OTS_Interposition+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Interposition+GIOP"
+"+IIOP\", \"GIOP+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Interposition"
+"\", \"\"];\n"
+"                };\n"
+"        };\n"
+"};"
+msgstr ""
+"arjuna\n"
+"{\n"
+"        portable_interceptor\n"
+"        {\n"
+"                orb_plugins = [\"local_log_stream\", \"iiop_profile\", \"giop"
+"\", \"iiop\", \"portable_interceptor\"];\n"
+"        \n"
+"                ots_recovery_coordinator\n"
+"                {\n"
+"                        recovery_coordinator:iiop:addr_list = [“&lt;name&gt;:"
+"&lt;port&gt;”];\n"
+"                };\n"
+"                        \n"
+"                ots_transaction\n"
+"                {\n"
+"                        transaction:iiop:addr_list = [“+&lt;name&gt;:&lt;"
+"port&gt;”];\n"
+"                };     \n"
+"                ots_context\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Context\", "
+"\"OTS_Context+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Context+GIOP+IIOP\", \"GIOP"
+"+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Context\", "
+"\"\"];\n"
+"                };\n"
+"                                        \n"
+"                ots_interposition\n"
+"                {\n"
+"                        binding:client_binding_list = [\"OTS_Interposition"
+"\", \"OTS_Interposition+GIOP+SIOP\", \"GIOP+SIOP\", \"OTS_Interposition+GIOP"
+"+IIOP\", \"GIOP+IIOP\"];\n"
+"                        binding:server_binding_list = [\"OTS_Interposition"
+"\", \"\"];\n"
+"                };\n"
+"        };\n"
+"};"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:198
+#, no-c-format
+msgid ""
+"The &lt;name&gt; field should be substituted by the name of the machine on "
+"which JBossTS is being run. The &lt;port&gt; field should be an unused port "
+"on which the JBossTS recovery manager may listen for recovery requests."
+msgstr ""
+"&lt;name&gt; フィールドは JBossTS が実行されているマシン名に置き換えます。"
+"&lt;port&gt; フィールドはリカバリ要求の際、JBossTS リカバリマネージャがリッス"
+"ンする未使用ポートでなければなりません。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:201
+#, no-c-format
+msgid ""
+"Because of the way in which Orbix works with persistent POAs, if you want "
+"crash recovery support for your applications you must use one of the Arjuna "
+"ORB names provided (context or interposition) when running your clients and "
+"services. When using transaction context propagation only, the<parameter>–"
+"ORBname arjuna.portable_interceptor.ots_context</parameter> parameter should "
+"be passed to the client and server. When using context propagation and "
+"interposition, the <parameter>–ORBname.arjuna.portable_interceptor."
+"ots_interposition</parameter> parameter should be used. For example:"
+msgstr ""
+"Orbix と永続 POA が動作する仕組みにより、アプリケーションに対するクラッシュリ"
+"カバリサポートが必要な場合、クライアントやサービスを実行する際に提供された "
+"Arjuna ORB 名の 1 つ(コンテキストまたは割り込み)を使用しなければなりませ"
+"ん。トランザクションコンテキストの伝搬のみを使用する場合、<parameter>–"
+"ORBname arjuna.portable_interceptor.ots_context</parameter> パラメータをクラ"
+"イアントとサーバーに渡す必要があります。コンテキストの伝搬と割り込みを使用す"
+"る場合、<parameter>–ORBname.arjuna.portable_interceptor.ots_interposition</"
+"parameter> パラメータを使用しなければなりません。例は次の通りです。"
+
+#. Tag: screen
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:204
+#, no-c-format
+msgid "java mytest –ORBname arjuna.portable_interceptor.ots_context"
+msgstr "java mytest –ORBname arjuna.portable_interceptor.ots_context"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:206
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:287
+#, no-c-format
+msgid "How it works"
+msgstr "仕組み"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:207
+#, no-c-format
+msgid ""
+"When the Recovery Manager is launched it seeks in the configuration the "
+"RecoveryActivator that need be loaded. Once done it invokes the "
+"<methodname>startRCservice</methodname> method of each loaded instances. As "
+"seen in in the previous chapter (Recovery Manager) the class to load that "
+"implements the <interfacename>RecoveryActivator</interfacename> interface is "
+"the class <classname>RecoveryEnablement</classname>. This generic class, "
+"located in the package <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package>, hides the nature of the ORB being used by the "
+"application. The following figure illustrates the behavior of the "
+"<interfacename>RecoveryActivator</interfacename> that leads to the creation "
+"of the default servant that performs all replay_invocations requests."
+msgstr ""
+"Recovery Manager が起動すると、ロードする必要がある RecoveryActivator を設定"
+"内で探します。その後、ロードされた各インスタンスの "
+"<methodname>startRCservice</methodname> メソッドを呼び出します。前章 (リカバ"
+"リマネージャ) の説明通り、ロード対象の <interfacename>RecoveryActivator</"
+"interfacename> インターフェイスを実装するクラスは "
+"<classname>RecoveryEnablement</classname> になります。この汎用クラスは "
+"<package>com.arjuna.ats.internal.jts.orbspecific.recovery</package> パッケー"
+"ジ内にあり、アプリケーションが使用する ORB の本質を隠します。次の図は、すべて"
+"の replay_invocations 要求を実行するデフォルトサーバントが作成されることにな"
+"る <interfacename>RecoveryActivator</interfacename> の動作を表しています。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:215
+#, no-c-format
+msgid ""
+"The Recovery Manager and the creation of the default servant for "
+"RecoveryCoordinator."
+msgstr ""
+"Recovery Manager と RecoveryCoordinator に対するデフォルトサーバントの作成。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:218
+#, no-c-format
+msgid ""
+"There is one recovery Manager Process per machine, then one default servant "
+"per machine. Performing all replay_completion invocations means those made "
+"on the same machine."
+msgstr ""
+"マシンごとに 1 つのリカバリマネージャプロセスがあるため、マシンごとに 1 つの"
+"デフォルトサーバントがあることになります。すべての replay_completion を呼び出"
+"すとは、同じマシンで作成されたすべての replay_completion を呼び出すという意味"
+"になります。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:222
+#, no-c-format
+msgid ""
+"When started, the application, using JBossTS in library mode, is launched a "
+"child POA is created with the same policies as those defined within the "
+"Recovery Manager. This child POA is used to create object references, for "
+"RecoveryCoordinator CORBA objects, that need to be returned on "
+"register_resource invocations, as illustrated in figure below. The Object "
+"reference created has an Object ID that contains the transaction ID in "
+"progress and the Process Identifier of the application."
+msgstr ""
+"開始されると、JBossTS をライブラリモードで使用するアプリケーションが起動し、"
+"Recovery Manager 内で定義されたポリシーと同じポリシーを持つ子 POA が作成され"
+"ます。下図の通り、この子 POA は、register_resource が呼び出された際に返さなけ"
+"ればならない RecoveryCoordinator CORBA オブジェクトのオブジェクト参照を作成す"
+"るために使用されます。作成されたオブジェクト参照は、実行中のトランザクション "
+"ID とアプリケーションのプロセス識別子を含むオブジェクト ID を持っています。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:226
+#, no-c-format
+msgid ""
+"If the Transaction Service is used in the stand-alone mode, the behavior to "
+"create object reference to RecoveryCoordinator objects is exactly the same; "
+"the process ID used in the Object ID is the Transaction Service process ID"
+msgstr ""
+"スタンドアローンモードでトランザクションサービスが使用された場合、"
+"RecoveryCoordinator オブジェクトへのオブジェクト参照を作成する動作は全く同じ"
+"になります。オブジェクト ID 内で使用されたプロセス ID はトランザクションサー"
+"ビスプロセス ID になります。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:234
+#, no-c-format
+msgid ""
+"Resource registration and returned RecoveryCoordinator Object reference."
+msgstr "リソース登録と返された RecoveryCoordinator オブジェクト参照"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:236
+#, fuzzy, no-c-format
+msgid ""
+"Having the object reference of the RecoveryCoordinator, an application can "
+"use it to determine the status of the transaction for which that object "
+"reference is created. When a RecoveryCoordinator, according to POA policies "
+"is assigned to the POA included in the object reference, the request is "
+"forward straight to the default servant defined in the Recovery Manager, as "
+"described in the figure below."
+msgstr ""
+"アプリケーションは RecoveryCoordinator のオブジェクト参照を使用して、オブジェ"
+"クト参照が作成されるトランザクションの状態を判断することができます。下図の通"
+"り、POA ポリシーに基づき RecoveryCoordinator がオブジェクト参照に含まれる "
+"POA へ割り当てられた場合、要求は Recovery Manager で定義されたデフォルトサー"
+"バントへ転送されます。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:243
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator ."
+msgstr ""
+"デフォルトの RecoveryCoordinator に転送された replay_completion 呼び出し"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:245
+#, no-c-format
+msgid "The flow described in the figure can be depicted as follow:"
+msgstr "図に記述されたフローの説明は次の通りです。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:250
+#, no-c-format
+msgid ""
+"The participant invokes the replay_completion operation on "
+"RecoveryCoordinator object using the object reference returned by the "
+"Transaction Server."
+msgstr ""
+"Transaction Server によって返されたオブジェクト参照を使用して、参加者は "
+"Recovery Coordinator オブジェクト上で replay_completion を呼び出します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:255
+#, no-c-format
+msgid ""
+"The request is forwarded to the Recovery Manager process since the Well-"
+"known-address policy is used to retrieve."
+msgstr ""
+"取得に予約済みアドレスポリシーが使用されたため、要求が RecoveryManager プロセ"
+"スへ転送されます。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:260
+#, no-c-format
+msgid "The child POA responsible to locate the servant is retrieved."
+msgstr "サーバントを探す子 POA を取得します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:265
+#, no-c-format
+msgid ""
+"After looking to the Active Object Map, the child POA invokes the default "
+"servant to perform the request. Note that the Object ID conveyed by the "
+"object reference is not retrieved in the AOP."
+msgstr ""
+"Active Object Map を確認した後、子 POA はデフォルトサーバントを呼び出し、要求"
+"を実行します。オブジェクト参照によって送られた Object ID は AOP 内で取得され"
+"ません。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:270
+#, no-c-format
+msgid ""
+"The servant extracts from the request the Object ID that contains the "
+"Transaction ID and the process ID of the Transaction Server process. To "
+"determine if the process still alive, the TransactionStatusConnectionManager "
+"functionalities are used."
+msgstr ""
+"サーバントは、Transaction Server プロセスの Transaction ID およびプロセス ID "
+"を持つ Object ID を要求から抽出します。プロセスが存在しているか確認するには、"
+"TransactionStatusConnectionManager 機能を使用します。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:275
+#, no-c-format
+msgid ""
+"According to the presence or not of the Transaction Server process and "
+"eventually the returned status, the servant returns the status of the "
+"transaction asked by the participant."
+msgstr ""
+"Transaction Server プロセスの存在の有無や最終的に返された状態を基に、サーバン"
+"トは参加者が要求したトランザクションの状態を返します。"
+
+#. Tag: title
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:282
+#, no-c-format
+msgid "The default RecoveryCoordinator in JacOrb"
+msgstr "JacOrb のおけるデフォルト RecoveryCoordinator"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:283
+#, no-c-format
+msgid ""
+"JacORB does not define additional policies to redirect any request on a "
+"RecoveryCoordinator object to a default servant located in the Recovery "
+"Manager process. However it provides a set of APIs that allows building "
+"object references with specific IP address, port number and POA name in "
+"order to reach the appropriate default servant."
+msgstr ""
+"JacORB は、RecoveryCoordinator オブジェクト上の要求を RecoveryManager プロセ"
+"ス内にあるデフォルトサーバントへリダイレクトする追加ポリシーを定義しません。"
+"しかし、適切なデフォルトサーバントにアクセスするため、特定の IP アドレスや"
+"ポート番号、POA 名でオブジェクト参照を作成できるよう、一連の API を提供しま"
+"す。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:288
+#, no-c-format
+msgid ""
+"When the Recovery Manager is launched it seeks in the configuration the "
+"RecoveryActivator that need be loaded. Once done it invokes the "
+"<methodname>startRCservice</methodname> method of each loaded instances. As "
+"seen in in the previous chapter (Recovery Manager ) the class to load that "
+"implements the <interfacename>RecoveryActivator</interfacename> interface is "
+"the class <classname>RecoveryEnablement</classname>. This generic class, "
+"located in the package <package>com.arjuna.ats.internal.jts.orbspecific."
+"recovery</package>, hides the nature of the ORB being used by the "
+"application (JacORB). The following figure illustrates the behavior of the "
+"<interfacename>RecoveryActivator</interfacename> that leads to the creation "
+"of the default servant that performs replay_completion invocations requests."
+msgstr ""
+"Recovery Manager が起動すると、ロードする必要がある RecoveryActivator を設定"
+"内で探します。その後、ロードされた各インスタンスの "
+"<methodname>startRCservice</methodname> メソッドを呼び出します。前章 (リカバ"
+"リマネージャ) の説明通り、ロード対象の <interfacename>RecoveryActivator</"
+"interfacename> インターフェイスを実装するクラスは "
+"<classname>RecoveryEnablement</classname> になります。この汎用クラスは "
+"<package>com.arjuna.ats.internal.jts.orbspecific.recovery</package> パッケー"
+"ジ内にあり、アプリケーション (JacORB) が使用する ORB の本質を隠します。次の図"
+"は、すべての replay_invocations 要求を実行するデフォルトサーバントが作成され"
+"ることになる <interfacename>RecoveryActivator</interfacename> の動作を表して"
+"います。"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:292
+#, no-c-format
+msgid ""
+"In addition to the creation of the default servant, an object reference to a "
+"<code>RecoveryCoordinator</code> object is created and stored in the "
+"ObjectStore. As we will see this object reference will be used to obtain its "
+"IP address, port number and POA name and assign them to any "
+"<code>RecoveryCoordinator</code> object reference created on "
+"register_resource."
+msgstr ""
+"デフォルトのサーバントが作成されるだけでなく、<code>RecoveryCoordinator</"
+"code> オブジェクトへのオブジェクト参照が作成され、ObjectStore に保存されま"
+"す。IP アドレスやポート番号、POA 名を取得するためこのオブジェクト参照が使用さ"
+"れ、これらは register_resource 上に作成された <code>RecoveryCoordinator</"
+"code> オブジェクト参照に割り当てられます。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:299
+#, no-c-format
+msgid ""
+"replay_completion invocation forwarded to the default RecoveryCoordinator."
+msgstr ""
+"デフォルトの RecoveryCoordinator に転送される replay_completion 呼び出し"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:301
+#, no-c-format
+msgid ""
+"When an application registers a resource with a transaction, a "
+"<code>RecoveryCoordinator</code> object reference is expected to be "
+"returned. To build that object reference, the Transaction Service uses the "
+"RecoveryCoordinator object reference created within the Recovery Manager as "
+"a template. The new object reference contains practically the same "
+"information to retrieve the default servant (IP address, port number, POA "
+"name, etc.), but the Object ID is changed; now, it contains the Transaction "
+"ID of the transaction in progress and also the Process ID of the process "
+"that is creating the new <code>RecoveryCoordinator</code> object reference, "
+"as illustrated below."
+msgstr ""
+"アプリケーションがトランザクションにてリソースを登録する際、"
+"<code>RecoveryCoordinator</code> オブジェクト参照が返されるはずです。そのオブ"
+"ジェクト参照を作成するため、Transaction Service は Recovery Manager 内でテン"
+"プレートをして作成された RecoveryCoordinator オブジェクト参照を使用します。新"
+"しいオブジェクト参照は実質的に同じ情報を持ち、デフォルトのサーバントを取得し"
+"ますが(IP アドレス、ポート番号、POA 名など)、Object ID は異なります。下記の"
+"通り、この Object ID には実行中トランザクションの Transaction ID と、新しい "
+"<code>RecoveryCoordinator</code> オブジェクト参照を作成するプロセスの "
+"Process ID が含まれています。"
+
+#. Tag: caption
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:308
+#, no-c-format
+msgid ""
+"Resource registration and returned RecoveryCoordinator Object reference "
+"build from a reference stored in the ObjectStore."
+msgstr ""
+"リソース登録と返される RecoveryCoordinator Object 参照 (ObjectStore に保存さ"
+"れた参照より作成)"
+
+#. Tag: para
+#: How_JBossTS_managers_the_OTS_Recovery_Protocol.xml:310
+#, no-c-format
+msgid ""
+"Since a <code>RecoveryCoordintaor</code> object reference returned to an "
+"application contains all information to retrieve the POA then the default "
+"servant located in the Recovery Manager, all replay_completion invocation, "
+"per machine, are forwarded to the same default <code>RecoveryCoordinator</"
+"code> that is able to retreive the Object ID from the incoming request to "
+"extract the transaction identifier and the process identifier needed to "
+"determine the status of the requested transaction."
+msgstr ""
+"アプリケーションに返された <code>RecoveryCoordintaor</code> オブジェクト参照"
+"は、POA や Recovery Manager にあるデフォルトのサーバントを取得するために必要"
+"な情報をすべて持っているため、マシンごとの replay_completion 呼び出しは同じデ"
+"フォルトの <code>RecoveryCoordinator</code> に転送されます。そのため、着信要"
+"求より Object ID を取得し、要求があったトランザクションの状態を判定するために"
+"必要なトランザクション識別子やプロセス識別子を抽出することができます。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 11:46+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "はじめに"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,29 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for Transactions_Failure_Recovery_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-08-05 11:47+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/ja-JP/Transactions_Failure_Recovery_Guide.po
===================================================================

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

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

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

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

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Revision_History.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/Transactions_Failure_Recovery_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-08-05 01:23+0000\n"
+"PO-Revision-Date: 2008-08-05 01:23+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss "
+"Transactions Failure Recovery Guide"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Failure_Recovery_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:30+0000\n"
+"PO-Revision-Date: 2008-09-23 06:30+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+#Makefile for Transactions_Installation_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= de-DE fr-FR es-ES ja-JP pt-BR zh-CN
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Installation Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:12
+#, no-c-format
+msgid "This book is about installing the JBoss Transactions Arjuna Core"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:23
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Installing_ArjunaCore.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Installing_ArjunaCore.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Installing_ArjunaCore.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,484 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:6
+#, no-c-format
+msgid "Installing AjunaCore"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:8
+#, no-c-format
+msgid "Preparing your system"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:9
+#, no-c-format
+msgid ""
+"Before installing the <firstterm>ArjunaCore</firstterm> software, we "
+"recommend the following administrative steps be taken, assuming a default "
+"configuration for ArjunaCore:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:14
+#, no-c-format
+msgid "Install the distribution into the required location."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:19
+#, no-c-format
+msgid ""
+"ArjunaCore requires a minimum object store for storing the outcome of "
+"transactions in the event of system crashes. The location of this should be "
+"specified in the properties file using the <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname>, for example, "
+"<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname>."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:24
+#, no-c-format
+msgid ""
+"By default, all object states will be stored within the defaultStore "
+"subdirectory of the object store root, for example, /usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore. However, this subdirectory can "
+"be changed by setting the <property>com.arjuna.ats.arjuna.objectstore."
+"localOSRoot</property> property variable accordingly."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:32
+#, no-c-format
+msgid "Operating System Services"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:33
+#, no-c-format
+msgid ""
+"It is possible to run the recovery manager and transaction server as "
+"operating system services."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:37
+#, no-c-format
+msgid "Installing and Uninstalling"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:38
+#, no-c-format
+msgid ""
+"This section explains how to install and uninstall these operating system "
+"services for the two main types of operating system: Windows and UNIX "
+"(Solaris, Linux and HP-UX)."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:43
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:44
+#, no-c-format
+msgid ""
+"There are four scripts provided which will install/uninstall the recovery "
+"manager and transaction server services, these files can be found in Services"
+"\\bin\\windows:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:50
+#, no-c-format
+msgid "Recovery Manager Service"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:55
+#, no-c-format
+msgid ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: running this script will "
+"install the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:60
+#, no-c-format
+msgid ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: running this script "
+"will uninstall the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:67
+#, no-c-format
+msgid "Transaction Server"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:72
+#, no-c-format
+msgid ""
+"<code>InstallTransactionServerService-NT.bat</code>: running this script "
+"will install the Transaction Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:77
+#, no-c-format
+msgid ""
+"<code>UninstallTransactionServerService-NT.bat</code>: running this script "
+"will uninstall the Transaction Server as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:84
+#, no-c-format
+msgid ""
+"Please note that you must either be logged on as an administrator or have "
+"administrator privileges to install/uninstall a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:87
+#, no-c-format
+msgid ""
+"Once you have run an install script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:90
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:91
+#, no-c-format
+msgid ""
+"This indicates that the service has been installed successfully. The service "
+"should also be visible in the services list from the Control Panel (see "
+"Figure 1 Services list from the Control Panel)"
+msgstr ""
+
+#. Tag: caption
+#: Installing_ArjunaCore.xml:98
+#, no-c-format
+msgid "Services list from the Control Panel"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:100
+#, no-c-format
+msgid ""
+"Once you have run an uninstall script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:103
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:104
+#, no-c-format
+msgid "This indicates that the service has been uninstalled successfully."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:108
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:109
+#, no-c-format
+msgid "To install the services on Unix machines perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:115
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to create files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:120 Installing_ArjunaCore.xml:158
+#, no-c-format
+msgid "Change directory to services/installer."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:125
+#, no-c-format
+msgid ""
+"Make sure the environment variable JAVA_HOME is set to the home directory of "
+"the JVM you wish the services to be run as. For example:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:128
+#, no-c-format
+msgid "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:131
+#, no-c-format
+msgid "<code>setenv JAVA_HOME /opt/java</code> (for csh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:136
+#, no-c-format
+msgid "Run the installer script:"
+msgstr ""
+
+#. Tag: code
+#: Installing_ArjunaCore.xml:140
+#, no-c-format
+msgid "./install_services.sh"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:144 Installing_ArjunaCore.xml:168
+#, no-c-format
+msgid ""
+"The following is example output from a computer running the Solaris "
+"operating system:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:147
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:148
+#, no-c-format
+msgid ""
+"Upon restarting the computer the transaction server and recovery manager "
+"service should be started. To uninstall the services on a Unix machine "
+"simply perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:153
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to remove files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:163
+#, no-c-format
+msgid "Run the installer script with the <command>-u</command> argument:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:171
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:173
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:174
+#, no-c-format
+msgid ""
+"The recovery manager and the transaction server services produce log files "
+"which are located in the services/logs/ directory. There are two log files "
+"per service one called <filename>&lt;service name&gt;-service.log</filename> "
+"(for example, <filename>recovery-manager-service.log</filename>), which "
+"contains information regarding the state of the service (e.g. started, "
+"stopped, restarted etc). The other is called <filename>&lt;services-name&gt;."
+"log</filename> (for example, <filename>recovery-manager.log</filename>) this "
+"contains information logged from the actual service (for example, "
+"application level logging)."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:178
+#, no-c-format
+msgid ""
+"To configure what information is logged in these files please edit the "
+"appropriate LOG4J configuration files which are located in services/config/."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:183
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:184
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:189
+#, no-c-format
+msgid "Additional jar requirements"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:190
+#, no-c-format
+msgid ""
+"In order to fully utilize all of the facilities available within ArjunaCore, "
+"it will be necessary to add all of the jar files contained in the lib "
+"directory of the distribution."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:195
+#, no-c-format
+msgid "Setting properties"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:196
+#, no-c-format
+msgid ""
+"ArjunaCore has been designed to be highly configurable at runtime through "
+"the use of various property attributes, which will be described in "
+"subsequent sections. Although these attributes can be provided at runtime on "
+"the command line, it is possible (and may be more convenient) to specify "
+"them through a single properties file. At runtime ArjunaCore looks for the "
+"file <filename>jbossjts-properties.xml</filename> in the following order:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:201
+#, no-c-format
+msgid ""
+"the current working directory. For instance, where the application was "
+"executed from."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:206
+#, no-c-format
+msgid "the user’s home directory."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:211
+#, no-c-format
+msgid ""
+"the etc directory of the ArjunaCore installation; this must be placed in "
+"your CLASSPATH."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:216
+#, no-c-format
+msgid ""
+"If found, all entries within this file will be added to the system "
+"properties. Obviously non-ArjunaCore specific properties can also be "
+"specified in this file. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:219
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:220
+#, no-c-format
+msgid ""
+"The name of the properties file can be overridden at runtime by specifying a "
+"new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> attribute variable."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/JBoss_Transactions_Installation_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="Transactions_Installation_Guide-Product_Name_and_Version">
+	<title>JBoss Transactions Installation Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract><para>This book is about installing the JBoss Transactions Arjuna Core</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata format='SVG' fileref="Common_Content/images/title_logo.svg" />
+			</imageobject>
+			<textobject><phrase>Logo</phrase></textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+
+
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,274 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="Transactions_Installation_Guide-Installing_ArjunaCore">
+	<title>Installing AjunaCore</title>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Preparing_your_system">
+		<title>Preparing your system</title>
+		<para>
+			Before installing the <firstterm>ArjunaCore</firstterm> software, we recommend the following administrative steps be taken, assuming a default configuration for ArjunaCore:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Install the distribution into the required location.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					ArjunaCore requires a minimum object store for storing the outcome of transactions in the event of system crashes. The location of this should be specified in the properties file using the <varname>com.arjuna.ats.arjuna.objectstore.objectStoreDir environment variable</varname>, for example, <varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\temp foo</varname>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					By default, all object states will be stored within the defaultStore subdirectory of the object store root, for example, /usr/local/Arjuna/TransactionService/ObjectStore/defaultStore. However,  this subdirectory can be changed by setting the <property>com.arjuna.ats.arjuna.objectstore.localOSRoot</property> property variable accordingly.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Operating_System_Services">
+		<title>Operating System Services</title>
+		<para>
+			It is possible to run the recovery manager and transaction server as operating system services.
+		</para>
+		<formalpara>
+			<title>Installing and Uninstalling</title>
+			<para>
+				This section explains how to install and uninstall these operating system services for the two main types of operating system:  Windows and UNIX (Solaris, Linux and HP-UX).
+			</para>
+		</formalpara>
+		<formalpara>
+			<title>Windows</title>
+			<para>
+				There are four scripts provided which will install/uninstall the recovery manager and transaction server services, these files can be found in Services\bin\windows:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Recovery Manager Service
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							<code>InstallRecoveryManagerService-NT.bat</code>: running this script will install the Recovery Manager as a Windows service.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<code>UninstallRecoveryManagerService-NT.bat</code>: running this script will uninstall the Recovery Manager as a Windows service.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Transaction Server
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							<code>InstallTransactionServerService-NT.bat</code>: running this script will install the Transaction Manager as a Windows service.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<code>UninstallTransactionServerService-NT.bat</code>: running this script will uninstall the Transaction Server as a Windows service.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Please note that you must either be logged on as an administrator or have administrator privileges to install/uninstall a Windows service.
+		</para>
+		<para>
+			Once you have run an install script you should see the following message:
+		</para>
+<screen>
+	wrapper  | JBoss Transaction Service &lt;service name&gt; installed
+</screen>
+		<para>
+			This indicates that the service has been installed successfully.  The service should also be visible in the services list from the Control Panel (see Figure 1 Services list from the Control Panel) 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="Win_Services.png" format="PNG"/>
+			</imageobject>
+			<caption>Services list from the Control Panel</caption>
+		</mediaobject>
+		<para>
+			Once you have run an uninstall script you should see the following message:
+		</para>
+<screen>
+	wrapper  | JBoss Transaction Service &lt;service name&gt; removed.
+</screen>
+		<para>
+			This indicates that the service has been uninstalled successfully.
+		</para>
+		<formalpara>
+			<title>Unix</title>
+			<para>
+				To install the services on Unix machines perform the following steps:
+			</para>
+		</formalpara>
+		<orderedlist>
+			<listitem>
+				<para>
+					Make sure that you are logged in as the user <emphasis>root</emphasis>, as the installer needs to create files under the directory /etc.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Change directory to services/installer.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Make sure the environment variable JAVA_HOME is set to the home directory of the JVM you wish the services to be run as.  For example:
+				</para>
+				<para>
+					<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)
+				</para>
+				<para>
+					<code>setenv JAVA_HOME /opt/java</code> (for csh)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Run the installer script:
+				</para>
+				<para>
+					<code>./install_services.sh</code>
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			The following is example output from a computer running the Solaris operating system:
+		</para>
+<screen>
+# ./install_services.sh
+
+Adding $JAVA_HOME (/opt/java) to $PATH in
+/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh
+Adding $JAVA_HOME (/opt/java) to $PATH in
+/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh
+Installing shutdown scripts into /etc/rcS.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing shutdown scripts into /etc/rc0.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing shutdown scripts into /etc/rc1.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing shutdown scripts into /etc/rc2.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing startup scripts into /etc/rc3.d:
+	S98recoverymanagerservice
+ 	S99transactionserverservice
+</screen>
+		<para>
+			Upon restarting the computer the transaction server and recovery manager service should be started.  To uninstall the services on a Unix machine simply perform the following steps:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					Make sure that you are logged in as the user <emphasis>root</emphasis>, as the installer needs to remove files under the directory /etc.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Change directory to services/installer.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Run the installer script with the <command>-u</command> argument:
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			The following is example output from a computer running the Solaris operating system:
+		</para>
+<screen>
+# ./install_services.sh
+
+Removing startup scripts from /etc/rc3.d:
+	S98recoverymanagerservice
+	S99transactionserverservice
+Removing shutdown scripts from /etc/rcS.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Removing shutdown scripts from /etc/rc0.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Removing shutdown scripts from /etc/rc1.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Removing shutdown scripts from /etc/rc2.d:
+	K01recoverymanagerservice
+	K00transactionserverservice 
+</screen>
+		<formalpara>
+			<title>Logging</title>
+			<para>
+				The recovery manager and the transaction server services produce log files which are located in the services/logs/ directory.  There are two log files per service one called <filename>&lt;service name&gt;-service.log</filename> (for example, <filename>recovery-manager-service.log</filename>), which contains information regarding the state of the service (e.g. started, stopped, restarted etc). The other is called <filename>&lt;services-name&gt;.log</filename> (for example, <filename>recovery-manager.log</filename>) this contains information logged from the actual service (for example, application level logging).
+			</para>
+		</formalpara>
+		<para>
+			To configure what information is logged in these files please edit the appropriate LOG4J configuration files which are located in services/config/.
+		</para>
+	</section>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-ObjectStore_management">
+		<title>ObjectStore management</title>
+		<para>
+			Within the transaction service installation, the object store is updated regularly whenever transactions are created, or when Transactional Objects for Java is used. In a failure free environment, the only object states which should reside within the object store are those representing objects created with the Transactional Objects for Java API. However, if failures occur, transaction logs may remain in the object store until crash recovery facilities have resolved the transactions they represent. As such it is very important that the contents of the object store are not deleted without due care and attention, as this will make it impossible to resolve in doubt transactions. In addition, if multiple users share the same object store it is important that they realise this and do not simply delete the contents of the object store assuming it is an exclusive resource.
+		</para>
+	</section>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Additional_jar_requirements">
+		<title>Additional jar requirements</title>
+		<para>
+			In order to fully utilize all of the facilities available within ArjunaCore, it will be necessary to add all of the jar files contained in the lib directory of the distribution.
+		</para>
+	</section>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Setting_properties">
+		<title>Setting properties</title>
+		<para>
+			ArjunaCore has been designed to be highly configurable at runtime through the use of various property attributes, which will be described in subsequent sections. Although these attributes can be provided at runtime on the command line, it is possible (and may be more convenient) to specify them through a single properties file. At runtime ArjunaCore looks for the file <filename>jbossjts-properties.xml</filename> in the following order:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					the current working directory. For instance, where the application was executed from.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the user’s home directory.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the etc directory of the ArjunaCore installation; this must be placed in your CLASSPATH.
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			If found, all entries within this file will be added to the system properties. Obviously non-ArjunaCore specific properties can also be specified in this file. For example:
+		</para>
+<screen>
+&lt;property
+	name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/&gt;
+&lt;property
+	name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="c:\temp\ObjectStore"/&gt;
+</screen>
+		<para>
+			The name of the properties file can be overridden at runtime by specifying a new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</varname> attribute variable.
+		</para>
+	</section>
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,6 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_Installation_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Installing_ArjunaCore.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="Transactions_Installation_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include>
+</preface>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/Win_Services.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/Win_Services.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Installation Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:12
+#, no-c-format
+msgid "This book is about installing the JBoss Transactions Arjuna Core"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:23
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Installing_ArjunaCore.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Installing_ArjunaCore.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Installing_ArjunaCore.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,484 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:6
+#, no-c-format
+msgid "Installing AjunaCore"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:8
+#, no-c-format
+msgid "Preparing your system"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:9
+#, no-c-format
+msgid ""
+"Before installing the <firstterm>ArjunaCore</firstterm> software, we "
+"recommend the following administrative steps be taken, assuming a default "
+"configuration for ArjunaCore:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:14
+#, no-c-format
+msgid "Install the distribution into the required location."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:19
+#, no-c-format
+msgid ""
+"ArjunaCore requires a minimum object store for storing the outcome of "
+"transactions in the event of system crashes. The location of this should be "
+"specified in the properties file using the <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname>, for example, "
+"<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname>."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:24
+#, no-c-format
+msgid ""
+"By default, all object states will be stored within the defaultStore "
+"subdirectory of the object store root, for example, /usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore. However, this subdirectory can "
+"be changed by setting the <property>com.arjuna.ats.arjuna.objectstore."
+"localOSRoot</property> property variable accordingly."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:32
+#, no-c-format
+msgid "Operating System Services"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:33
+#, no-c-format
+msgid ""
+"It is possible to run the recovery manager and transaction server as "
+"operating system services."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:37
+#, no-c-format
+msgid "Installing and Uninstalling"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:38
+#, no-c-format
+msgid ""
+"This section explains how to install and uninstall these operating system "
+"services for the two main types of operating system: Windows and UNIX "
+"(Solaris, Linux and HP-UX)."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:43
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:44
+#, no-c-format
+msgid ""
+"There are four scripts provided which will install/uninstall the recovery "
+"manager and transaction server services, these files can be found in Services"
+"\\bin\\windows:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:50
+#, no-c-format
+msgid "Recovery Manager Service"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:55
+#, no-c-format
+msgid ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: running this script will "
+"install the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:60
+#, no-c-format
+msgid ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: running this script "
+"will uninstall the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:67
+#, no-c-format
+msgid "Transaction Server"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:72
+#, no-c-format
+msgid ""
+"<code>InstallTransactionServerService-NT.bat</code>: running this script "
+"will install the Transaction Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:77
+#, no-c-format
+msgid ""
+"<code>UninstallTransactionServerService-NT.bat</code>: running this script "
+"will uninstall the Transaction Server as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:84
+#, no-c-format
+msgid ""
+"Please note that you must either be logged on as an administrator or have "
+"administrator privileges to install/uninstall a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:87
+#, no-c-format
+msgid ""
+"Once you have run an install script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:90
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:91
+#, no-c-format
+msgid ""
+"This indicates that the service has been installed successfully. The service "
+"should also be visible in the services list from the Control Panel (see "
+"Figure 1 Services list from the Control Panel)"
+msgstr ""
+
+#. Tag: caption
+#: Installing_ArjunaCore.xml:98
+#, no-c-format
+msgid "Services list from the Control Panel"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:100
+#, no-c-format
+msgid ""
+"Once you have run an uninstall script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:103
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:104
+#, no-c-format
+msgid "This indicates that the service has been uninstalled successfully."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:108
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:109
+#, no-c-format
+msgid "To install the services on Unix machines perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:115
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to create files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:120 Installing_ArjunaCore.xml:158
+#, no-c-format
+msgid "Change directory to services/installer."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:125
+#, no-c-format
+msgid ""
+"Make sure the environment variable JAVA_HOME is set to the home directory of "
+"the JVM you wish the services to be run as. For example:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:128
+#, no-c-format
+msgid "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:131
+#, no-c-format
+msgid "<code>setenv JAVA_HOME /opt/java</code> (for csh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:136
+#, no-c-format
+msgid "Run the installer script:"
+msgstr ""
+
+#. Tag: code
+#: Installing_ArjunaCore.xml:140
+#, no-c-format
+msgid "./install_services.sh"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:144 Installing_ArjunaCore.xml:168
+#, no-c-format
+msgid ""
+"The following is example output from a computer running the Solaris "
+"operating system:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:147
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:148
+#, no-c-format
+msgid ""
+"Upon restarting the computer the transaction server and recovery manager "
+"service should be started. To uninstall the services on a Unix machine "
+"simply perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:153
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to remove files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:163
+#, no-c-format
+msgid "Run the installer script with the <command>-u</command> argument:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:171
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:173
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:174
+#, no-c-format
+msgid ""
+"The recovery manager and the transaction server services produce log files "
+"which are located in the services/logs/ directory. There are two log files "
+"per service one called <filename>&lt;service name&gt;-service.log</filename> "
+"(for example, <filename>recovery-manager-service.log</filename>), which "
+"contains information regarding the state of the service (e.g. started, "
+"stopped, restarted etc). The other is called <filename>&lt;services-name&gt;."
+"log</filename> (for example, <filename>recovery-manager.log</filename>) this "
+"contains information logged from the actual service (for example, "
+"application level logging)."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:178
+#, no-c-format
+msgid ""
+"To configure what information is logged in these files please edit the "
+"appropriate LOG4J configuration files which are located in services/config/."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:183
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:184
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:189
+#, no-c-format
+msgid "Additional jar requirements"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:190
+#, no-c-format
+msgid ""
+"In order to fully utilize all of the facilities available within ArjunaCore, "
+"it will be necessary to add all of the jar files contained in the lib "
+"directory of the distribution."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:195
+#, no-c-format
+msgid "Setting properties"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:196
+#, no-c-format
+msgid ""
+"ArjunaCore has been designed to be highly configurable at runtime through "
+"the use of various property attributes, which will be described in "
+"subsequent sections. Although these attributes can be provided at runtime on "
+"the command line, it is possible (and may be more convenient) to specify "
+"them through a single properties file. At runtime ArjunaCore looks for the "
+"file <filename>jbossjts-properties.xml</filename> in the following order:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:201
+#, no-c-format
+msgid ""
+"the current working directory. For instance, where the application was "
+"executed from."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:206
+#, no-c-format
+msgid "the user’s home directory."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:211
+#, no-c-format
+msgid ""
+"the etc directory of the ArjunaCore installation; this must be placed in "
+"your CLASSPATH."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:216
+#, no-c-format
+msgid ""
+"If found, all entries within this file will be added to the system "
+"properties. Obviously non-ArjunaCore specific properties can also be "
+"specified in this file. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:219
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:220
+#, no-c-format
+msgid ""
+"The name of the properties file can be overridden at runtime by specifying a "
+"new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> attribute variable."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/JBoss_Transactions_Installation_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Installation Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:12
+#, no-c-format
+msgid "This book is about installing the JBoss Transactions Arjuna Core"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:23
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Installing_ArjunaCore.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Installing_ArjunaCore.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Installing_ArjunaCore.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,484 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:6
+#, no-c-format
+msgid "Installing AjunaCore"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:8
+#, no-c-format
+msgid "Preparing your system"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:9
+#, no-c-format
+msgid ""
+"Before installing the <firstterm>ArjunaCore</firstterm> software, we "
+"recommend the following administrative steps be taken, assuming a default "
+"configuration for ArjunaCore:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:14
+#, no-c-format
+msgid "Install the distribution into the required location."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:19
+#, no-c-format
+msgid ""
+"ArjunaCore requires a minimum object store for storing the outcome of "
+"transactions in the event of system crashes. The location of this should be "
+"specified in the properties file using the <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname>, for example, "
+"<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname>."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:24
+#, no-c-format
+msgid ""
+"By default, all object states will be stored within the defaultStore "
+"subdirectory of the object store root, for example, /usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore. However, this subdirectory can "
+"be changed by setting the <property>com.arjuna.ats.arjuna.objectstore."
+"localOSRoot</property> property variable accordingly."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:32
+#, no-c-format
+msgid "Operating System Services"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:33
+#, no-c-format
+msgid ""
+"It is possible to run the recovery manager and transaction server as "
+"operating system services."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:37
+#, no-c-format
+msgid "Installing and Uninstalling"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:38
+#, no-c-format
+msgid ""
+"This section explains how to install and uninstall these operating system "
+"services for the two main types of operating system: Windows and UNIX "
+"(Solaris, Linux and HP-UX)."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:43
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:44
+#, no-c-format
+msgid ""
+"There are four scripts provided which will install/uninstall the recovery "
+"manager and transaction server services, these files can be found in Services"
+"\\bin\\windows:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:50
+#, no-c-format
+msgid "Recovery Manager Service"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:55
+#, no-c-format
+msgid ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: running this script will "
+"install the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:60
+#, no-c-format
+msgid ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: running this script "
+"will uninstall the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:67
+#, no-c-format
+msgid "Transaction Server"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:72
+#, no-c-format
+msgid ""
+"<code>InstallTransactionServerService-NT.bat</code>: running this script "
+"will install the Transaction Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:77
+#, no-c-format
+msgid ""
+"<code>UninstallTransactionServerService-NT.bat</code>: running this script "
+"will uninstall the Transaction Server as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:84
+#, no-c-format
+msgid ""
+"Please note that you must either be logged on as an administrator or have "
+"administrator privileges to install/uninstall a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:87
+#, no-c-format
+msgid ""
+"Once you have run an install script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:90
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:91
+#, no-c-format
+msgid ""
+"This indicates that the service has been installed successfully. The service "
+"should also be visible in the services list from the Control Panel (see "
+"Figure 1 Services list from the Control Panel)"
+msgstr ""
+
+#. Tag: caption
+#: Installing_ArjunaCore.xml:98
+#, no-c-format
+msgid "Services list from the Control Panel"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:100
+#, no-c-format
+msgid ""
+"Once you have run an uninstall script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:103
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:104
+#, no-c-format
+msgid "This indicates that the service has been uninstalled successfully."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:108
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:109
+#, no-c-format
+msgid "To install the services on Unix machines perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:115
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to create files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:120 Installing_ArjunaCore.xml:158
+#, no-c-format
+msgid "Change directory to services/installer."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:125
+#, no-c-format
+msgid ""
+"Make sure the environment variable JAVA_HOME is set to the home directory of "
+"the JVM you wish the services to be run as. For example:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:128
+#, no-c-format
+msgid "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:131
+#, no-c-format
+msgid "<code>setenv JAVA_HOME /opt/java</code> (for csh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:136
+#, no-c-format
+msgid "Run the installer script:"
+msgstr ""
+
+#. Tag: code
+#: Installing_ArjunaCore.xml:140
+#, no-c-format
+msgid "./install_services.sh"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:144 Installing_ArjunaCore.xml:168
+#, no-c-format
+msgid ""
+"The following is example output from a computer running the Solaris "
+"operating system:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:147
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:148
+#, no-c-format
+msgid ""
+"Upon restarting the computer the transaction server and recovery manager "
+"service should be started. To uninstall the services on a Unix machine "
+"simply perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:153
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to remove files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:163
+#, no-c-format
+msgid "Run the installer script with the <command>-u</command> argument:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:171
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:173
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:174
+#, no-c-format
+msgid ""
+"The recovery manager and the transaction server services produce log files "
+"which are located in the services/logs/ directory. There are two log files "
+"per service one called <filename>&lt;service name&gt;-service.log</filename> "
+"(for example, <filename>recovery-manager-service.log</filename>), which "
+"contains information regarding the state of the service (e.g. started, "
+"stopped, restarted etc). The other is called <filename>&lt;services-name&gt;."
+"log</filename> (for example, <filename>recovery-manager.log</filename>) this "
+"contains information logged from the actual service (for example, "
+"application level logging)."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:178
+#, no-c-format
+msgid ""
+"To configure what information is logged in these files please edit the "
+"appropriate LOG4J configuration files which are located in services/config/."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:183
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:184
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:189
+#, no-c-format
+msgid "Additional jar requirements"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:190
+#, no-c-format
+msgid ""
+"In order to fully utilize all of the facilities available within ArjunaCore, "
+"it will be necessary to add all of the jar files contained in the lib "
+"directory of the distribution."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:195
+#, no-c-format
+msgid "Setting properties"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:196
+#, no-c-format
+msgid ""
+"ArjunaCore has been designed to be highly configurable at runtime through "
+"the use of various property attributes, which will be described in "
+"subsequent sections. Although these attributes can be provided at runtime on "
+"the command line, it is possible (and may be more convenient) to specify "
+"them through a single properties file. At runtime ArjunaCore looks for the "
+"file <filename>jbossjts-properties.xml</filename> in the following order:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:201
+#, no-c-format
+msgid ""
+"the current working directory. For instance, where the application was "
+"executed from."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:206
+#, no-c-format
+msgid "the user’s home directory."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:211
+#, no-c-format
+msgid ""
+"the etc directory of the ArjunaCore installation; this must be placed in "
+"your CLASSPATH."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:216
+#, no-c-format
+msgid ""
+"If found, all entries within this file will be added to the system "
+"properties. Obviously non-ArjunaCore specific properties can also be "
+"specified in this file. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:219
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:220
+#, no-c-format
+msgid ""
+"The name of the properties file can be overridden at runtime by specifying a "
+"new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> attribute variable."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/JBoss_Transactions_Installation_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Installation_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:27+0000\n"
+"PO-Revision-Date: 2008-09-18 09:27+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat ドキュメントチーム"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,48 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Installation_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:27+0000\n"
+"PO-Revision-Date: 2008-09-18 09:30+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Installation Guide"
+msgstr "JBoss Transactions Installation Guide"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr "JBoss Enterprise Application Platform 4.3 対応"
+
+#. Tag: para
+#: Book_Info.xml:12
+#, no-c-format
+msgid "This book is about installing the JBoss Transactions Arjuna Core"
+msgstr "このマニュアルは JBoss Transactions Arjuna Core にインストールについて説明しています。"
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr "Logo"
+
+#. Tag: holder
+#: Book_Info.xml:23
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Installing_ArjunaCore.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Installing_ArjunaCore.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Installing_ArjunaCore.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,610 @@
+# translation of Installing_ArjunaCore.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Installation_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Installing_ArjunaCore\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:27+0000\n"
+"PO-Revision-Date: 2008-09-18 11:27+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:6
+#, no-c-format
+msgid "Installing AjunaCore"
+msgstr "AjunaCore のインストール"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:8
+#, no-c-format
+msgid "Preparing your system"
+msgstr "システムの準備"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:9
+#, no-c-format
+msgid ""
+"Before installing the <firstterm>ArjunaCore</firstterm> software, we "
+"recommend the following administrative steps be taken, assuming a default "
+"configuration for ArjunaCore:"
+msgstr ""
+"<firstterm>ArjunaCore</firstterm> ソフトウェアをインストールする前に、以下のような "
+"管理手続きをお薦めします。ArjunaCore 用のデフォルト設定を想定しています:"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:14
+#, no-c-format
+msgid "Install the distribution into the required location."
+msgstr "計画した場所にディストリビューションをインストールします。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:19
+#, no-c-format
+msgid ""
+"ArjunaCore requires a minimum object store for storing the outcome of "
+"transactions in the event of system crashes. The location of this should be "
+"specified in the properties file using the <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname>, for example, "
+"<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname>."
+msgstr ""
+"ArjunaCore は、システムクラッシュの際にトランザクションの結果を格納するための "
+"最低限のオブジェクト格納領域を必要とします。この為の場所は <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname> を使用して、プロパティファイル内に "
+"指定します。例えば、<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname> とします。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:24
+#, no-c-format
+msgid ""
+"By default, all object states will be stored within the defaultStore "
+"subdirectory of the object store root, for example, /usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore. However, this subdirectory can "
+"be changed by setting the <property>com.arjuna.ats.arjuna.objectstore."
+"localOSRoot</property> property variable accordingly."
+msgstr ""
+"デフォルトでは、全てのオブジェクトの状態はオブジェクトストアルートの "
+"defaultStore サブディレクトリの中に格納されています。例えば、/usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore。しかし、このサブディレクトリは "
+"<property>com.arjuna.ats.arjuna.objectstore.localOSRoot</property> プロパティ "
+"変数を必要に応じて設定することにより変更が可能です。"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:32
+#, no-c-format
+msgid "Operating System Services"
+msgstr "オペレーティングシステムサービス"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:33
+#, no-c-format
+msgid ""
+"It is possible to run the recovery manager and transaction server as "
+"operating system services."
+msgstr ""
+"リカバリーマネージャとトランザクションサーバーをオペレーティングシステムサービスと "
+"して実行することができます。"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:37
+#, no-c-format
+msgid "Installing and Uninstalling"
+msgstr "インストールとアンインストール"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:38
+#, no-c-format
+msgid ""
+"This section explains how to install and uninstall these operating system "
+"services for the two main types of operating system: Windows and UNIX "
+"(Solaris, Linux and HP-UX)."
+msgstr ""
+"このセクションでは、2つの主要オペレーティングシステムについてオペレーティングシステム "
+"サービスのインストールとアンインストールの方法を説明しています。Windows 及び "
+"UNIX (Solaris と Linux と HP-UX)。"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:43
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:44
+#, no-c-format
+msgid ""
+"There are four scripts provided which will install/uninstall the recovery "
+"manager and transaction server services, these files can be found in Services"
+"\\bin\\windows:"
+msgstr ""
+"リカバリーマネージャとトランザクションサーバーのサービスをインストール/アンインストール "
+"するスクリプトが4種類提供されています。これらのファイルは Services"
+"\\bin\\windows 内で見ることができます:"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:50
+#, no-c-format
+msgid "Recovery Manager Service"
+msgstr "リカバリーマネージャサービス"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:55
+#, no-c-format
+msgid ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: running this script will "
+"install the Recovery Manager as a Windows service."
+msgstr ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: このスクリプトの実行は、 "
+"リカバリーマネージャを Windows サービスとしてインストールします。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:60
+#, no-c-format
+msgid ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: running this script "
+"will uninstall the Recovery Manager as a Windows service."
+msgstr ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: このスクリプトの "
+"実行は、リカバリーマネージャを Windows サービスとしてアンインストールします。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:67
+#, no-c-format
+msgid "Transaction Server"
+msgstr "トランザクションサーバー"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:72
+#, no-c-format
+msgid ""
+"<code>InstallTransactionServerService-NT.bat</code>: running this script "
+"will install the Transaction Manager as a Windows service."
+msgstr ""
+"<code>InstallTransactionServerService-NT.bat</code>: このスクリプトの実行は "
+"トランザクションマネージャを Windows サービスとしてインストールします。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:77
+#, no-c-format
+msgid ""
+"<code>UninstallTransactionServerService-NT.bat</code>: running this script "
+"will uninstall the Transaction Server as a Windows service."
+msgstr ""
+"<code>UninstallTransactionServerService-NT.bat</code>: このスクリプトの実行は "
+"トランザクションサーバーを Windows サービスとしてアンインストールします。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:84
+#, no-c-format
+msgid ""
+"Please note that you must either be logged on as an administrator or have "
+"administrator privileges to install/uninstall a Windows service."
+msgstr ""
+"この場合、管理者としてログインして、又は管理者権限を使用して Windows サービスを "
+"インストール/アンインストールする必要があることに注意して下さい。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:87
+#, no-c-format
+msgid "Once you have run an install script you should see the following message:"
+msgstr "インストールスクリプトを実行した後は、以下のようなメッセージが表示されます:"
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:90
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+msgstr "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:91
+#, no-c-format
+msgid ""
+"This indicates that the service has been installed successfully. The service "
+"should also be visible in the services list from the Control Panel (see "
+"Figure 1 Services list from the Control Panel)"
+msgstr ""
+"これは、サービスが正しくインストールされたことを示します。サービスはまた、 "
+"コントロールパネルからもサービスリスト内に見える必要があります。(図1の "
+"コントロールパネル内のサービスリスト参照)"
+
+#. Tag: caption
+#: Installing_ArjunaCore.xml:98
+#, no-c-format
+msgid "Services list from the Control Panel"
+msgstr "コントロールパネル内のサービスリスト"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:100
+#, no-c-format
+msgid "Once you have run an uninstall script you should see the following message:"
+msgstr "アンインストールスクリプトを実行した後は、以下のようなメッセージが表示されます:"
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:103
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+msgstr "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:104
+#, no-c-format
+msgid "This indicates that the service has been uninstalled successfully."
+msgstr "これは、サービスが正しくアンインストールされたことを示します。"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:108
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:109
+#, no-c-format
+msgid "To install the services on Unix machines perform the following steps:"
+msgstr "Unix マシン上でサービスをインストールするには、以下のような手順を実行します:"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:115
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to create files under the directory /etc."
+msgstr ""
+"インストーラはディレクトリ  /etc の下にファイルを作成する必要があるため、 "
+"<emphasis>root</emphasis> ユーザーとしてログインするように気を付けて "
+"下さい。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:120 Installing_ArjunaCore.xml:158
+#, no-c-format
+msgid "Change directory to services/installer."
+msgstr "services/installer ディレクトリに移動します。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:125
+#, no-c-format
+msgid ""
+"Make sure the environment variable JAVA_HOME is set to the home directory of "
+"the JVM you wish the services to be run as. For example:"
+msgstr ""
+"環境変数 JAVA_HOME が、サービスを実行する計画の JVM のホームディレクトリに "
+"セットしてあることを確認して下さい。例えば以下のようにします:"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:128
+#, no-c-format
+msgid "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)"
+msgstr "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (sh 対応)"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:131
+#, no-c-format
+msgid "<code>setenv JAVA_HOME /opt/java</code> (for csh)"
+msgstr "<code>setenv JAVA_HOME /opt/java</code> (csh 対応)"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:136
+#, no-c-format
+msgid "Run the installer script:"
+msgstr "インストーラスクリプトを実行します:"
+
+#. Tag: code
+#: Installing_ArjunaCore.xml:140
+#, no-c-format
+msgid "./install_services.sh"
+msgstr "./install_services.sh"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:144 Installing_ArjunaCore.xml:168
+#, no-c-format
+msgid ""
+"The following is example output from a computer running the Solaris "
+"operating system:"
+msgstr ""
+"以下に Solaris オペレーティングシステムを稼働しているコンピュータからの "
+"出力の例を示します:"
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:147
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+msgstr ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:148
+#, no-c-format
+msgid ""
+"Upon restarting the computer the transaction server and recovery manager "
+"service should be started. To uninstall the services on a Unix machine "
+"simply perform the following steps:"
+msgstr ""
+"コンピュータの再起動で、トランザクションサーバーとリカバリーマネージャが開始 "
+"するはずです。Unix マシン上でこれらのサービスをアンインストールするには、 "
+"以下の手順を実行します:"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:153
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to remove files under the directory /etc."
+msgstr ""
+"インストーラが /etc ディレクトリの下にあるファイルを削除する必要があるため、 "
+"<emphasis>root</emphasis> ユーザーでログインしていることを確認して "
+"下さい。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:163
+#, no-c-format
+msgid "Run the installer script with the <command>-u</command> argument:"
+msgstr "インストーラスクリプトに <command>-u</command> 引数を付けて実行します:"
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:171
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+msgstr ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:173
+#, no-c-format
+msgid "Logging"
+msgstr "ロギング"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:174
+#, no-c-format
+msgid ""
+"The recovery manager and the transaction server services produce log files "
+"which are located in the services/logs/ directory. There are two log files "
+"per service one called <filename>&lt;service name&gt;-service.log</filename> "
+"(for example, <filename>recovery-manager-service.log</filename>), which "
+"contains information regarding the state of the service (e.g. started, "
+"stopped, restarted etc). The other is called <filename>&lt;services-name&gt;."
+"log</filename> (for example, <filename>recovery-manager.log</filename>) this "
+"contains information logged from the actual service (for example, "
+"application level logging)."
+msgstr ""
+"リカバリーマネージャとトランザクションサーバーのサービスは、services/logs/ ディレクトリに "
+"配置されるログファイルを作成します。それぞれのサービスに対して2つのログファイルが存在します。 "
+"その1つは、<filename>&lt;service name&gt;-service.log</filename> (例えば、 "
+"<filename>recovery-manager-service.log</filename>)と呼ばれて、そのサービスの "
+"状態(開始、停止、再開始など)に関する情報を含んでいます。もう1つは、<filename>&lt;services-name&gt;."
+"log</filename> (例えば、<filename>recovery-manager.log</filename>)と呼ばれて、これには、 "
+"実際のサービス(例えば、アプリケーションレベルのロギング)からのログされた情報が含まれています。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:178
+#, no-c-format
+msgid ""
+"To configure what information is logged in these files please edit the "
+"appropriate LOG4J configuration files which are located in services/config/."
+msgstr ""
+"これらのファイルにログされる情報を設定するには、services/config/ 内に存在する "
+"適切な LOG4J 設定ファイルを編集して下さい。"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:183
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "ObjectStore の管理"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:184
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"トランザクションサービスのインストールの中で、オブジェクト格納は、トランザクションが "
+"作成される時、あるいは Java 用のトランザクショナルオブジェクトが使用される時に、更新 "
+"されます。障害のない環境では、オブジェクト格納内に存在すべき唯一のオブジェクト状態は "
+"Java API 用のトランザクショナルオブジェクトを使用して作成されたオブジェクトを表現する "
+"ものだけです。しかし、障害が発生すると、それが表現するトランザクションを "
+"クラッシュリカバリー機能が解決するまで、トランザクションログが残ります。そのため、 "
+"オブジェクト格納の内容物は、十分な注意と監視なしで削除されることがないようにすることが "
+"重要です。削除が起こってしまうと疑わしいトランザクションでは解決するのが不可能になります。 "
+"更に、複数のユーザーが同じオブジェクト格納を共有する場合は、ユーザー達がこのことを認識して、 "
+"オブジェクト格納内の内容を自身の専用物と想定して削除してしまわないようにしなければなりません。 "
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:189
+#, no-c-format
+msgid "Additional jar requirements"
+msgstr "その他の jar 要件"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:190
+#, no-c-format
+msgid ""
+"In order to fully utilize all of the facilities available within ArjunaCore, "
+"it will be necessary to add all of the jar files contained in the lib "
+"directory of the distribution."
+msgstr ""
+"ArjunaCore 内で利用できる全ての機能を完全に活用するためには、ディストリビューションの "
+"lib  ディレクトリに含まれている jar ファイルを全て追加する必要があります。"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:195
+#, no-c-format
+msgid "Setting properties"
+msgstr "プロパティの設定"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:196
+#, no-c-format
+msgid ""
+"ArjunaCore has been designed to be highly configurable at runtime through "
+"the use of various property attributes, which will be described in "
+"subsequent sections. Although these attributes can be provided at runtime on "
+"the command line, it is possible (and may be more convenient) to specify "
+"them through a single properties file. At runtime ArjunaCore looks for the "
+"file <filename>jbossjts-properties.xml</filename> in the following order:"
+msgstr ""
+"ArjunaCore は、ランタイムから各種プロパティ属性の使用まで高度に設定可能に "
+"なるように設計されています。これについては、後のセクションで説明があります。 "
+"これらの属性はランタイム時にコマンドラインで提供されていますが、それらは "
+"(より便利な)1つのプロパティファイルを通じて指定することができます。 "
+"ランタイムでは、ArjunaCore は以下の順序で ファイル <filename>jbossjts-properties.xml</filename> を "
+"見つけます:"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:201
+#, no-c-format
+msgid ""
+"the current working directory. For instance, where the application was "
+"executed from."
+msgstr "現在の作業ディレクトリ。例えば、アプリケーションが実行された場所。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:206
+#, no-c-format
+msgid "the user’s home directory."
+msgstr "ユーザーのホームディレクトリ"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:211
+#, no-c-format
+msgid ""
+"the etc directory of the ArjunaCore installation; this must be placed in "
+"your CLASSPATH."
+msgstr ""
+"ArjunaCore インストールの etc ディレクトリ。これは使用中の CLASSPATH 内に "
+"配置している必要があります。"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:216
+#, no-c-format
+msgid ""
+"If found, all entries within this file will be added to the system "
+"properties. Obviously non-ArjunaCore specific properties can also be "
+"specified in this file. For example:"
+msgstr ""
+"見付かった場合は、このファイル内の全てのエントリはシステムプロパティに "
+"追加されます。当然、ArjunaCore 特有でないプロパティもこのファイル内で "
+"指定できます。例えば:"
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:219
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+msgstr ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:220
+#, no-c-format
+msgid ""
+"The name of the properties file can be overridden at runtime by specifying a "
+"new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> attribute variable."
+msgstr ""
+"このプロパティファイルの名前はランタイム時に、利用可能な <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> 属性を使用して、新規のファイルを指定することにより上書きすることができます。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/JBoss_Transactions_Installation_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Installation_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:27+0000\n"
+"PO-Revision-Date: 2008-09-18 09:27+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序文"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Installation_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:27+0000\n"
+"PO-Revision-Date: 2008-09-18 09:27+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Installation Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:12
+#, no-c-format
+msgid "This book is about installing the JBoss Transactions Arjuna Core"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:23
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Installing_ArjunaCore.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Installing_ArjunaCore.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Installing_ArjunaCore.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,484 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:6
+#, no-c-format
+msgid "Installing AjunaCore"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:8
+#, no-c-format
+msgid "Preparing your system"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:9
+#, no-c-format
+msgid ""
+"Before installing the <firstterm>ArjunaCore</firstterm> software, we "
+"recommend the following administrative steps be taken, assuming a default "
+"configuration for ArjunaCore:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:14
+#, no-c-format
+msgid "Install the distribution into the required location."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:19
+#, no-c-format
+msgid ""
+"ArjunaCore requires a minimum object store for storing the outcome of "
+"transactions in the event of system crashes. The location of this should be "
+"specified in the properties file using the <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname>, for example, "
+"<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname>."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:24
+#, no-c-format
+msgid ""
+"By default, all object states will be stored within the defaultStore "
+"subdirectory of the object store root, for example, /usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore. However, this subdirectory can "
+"be changed by setting the <property>com.arjuna.ats.arjuna.objectstore."
+"localOSRoot</property> property variable accordingly."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:32
+#, no-c-format
+msgid "Operating System Services"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:33
+#, no-c-format
+msgid ""
+"It is possible to run the recovery manager and transaction server as "
+"operating system services."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:37
+#, no-c-format
+msgid "Installing and Uninstalling"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:38
+#, no-c-format
+msgid ""
+"This section explains how to install and uninstall these operating system "
+"services for the two main types of operating system: Windows and UNIX "
+"(Solaris, Linux and HP-UX)."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:43
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:44
+#, no-c-format
+msgid ""
+"There are four scripts provided which will install/uninstall the recovery "
+"manager and transaction server services, these files can be found in Services"
+"\\bin\\windows:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:50
+#, no-c-format
+msgid "Recovery Manager Service"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:55
+#, no-c-format
+msgid ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: running this script will "
+"install the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:60
+#, no-c-format
+msgid ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: running this script "
+"will uninstall the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:67
+#, no-c-format
+msgid "Transaction Server"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:72
+#, no-c-format
+msgid ""
+"<code>InstallTransactionServerService-NT.bat</code>: running this script "
+"will install the Transaction Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:77
+#, no-c-format
+msgid ""
+"<code>UninstallTransactionServerService-NT.bat</code>: running this script "
+"will uninstall the Transaction Server as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:84
+#, no-c-format
+msgid ""
+"Please note that you must either be logged on as an administrator or have "
+"administrator privileges to install/uninstall a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:87
+#, no-c-format
+msgid ""
+"Once you have run an install script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:90
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:91
+#, no-c-format
+msgid ""
+"This indicates that the service has been installed successfully. The service "
+"should also be visible in the services list from the Control Panel (see "
+"Figure 1 Services list from the Control Panel)"
+msgstr ""
+
+#. Tag: caption
+#: Installing_ArjunaCore.xml:98
+#, no-c-format
+msgid "Services list from the Control Panel"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:100
+#, no-c-format
+msgid ""
+"Once you have run an uninstall script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:103
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:104
+#, no-c-format
+msgid "This indicates that the service has been uninstalled successfully."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:108
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:109
+#, no-c-format
+msgid "To install the services on Unix machines perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:115
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to create files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:120 Installing_ArjunaCore.xml:158
+#, no-c-format
+msgid "Change directory to services/installer."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:125
+#, no-c-format
+msgid ""
+"Make sure the environment variable JAVA_HOME is set to the home directory of "
+"the JVM you wish the services to be run as. For example:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:128
+#, no-c-format
+msgid "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:131
+#, no-c-format
+msgid "<code>setenv JAVA_HOME /opt/java</code> (for csh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:136
+#, no-c-format
+msgid "Run the installer script:"
+msgstr ""
+
+#. Tag: code
+#: Installing_ArjunaCore.xml:140
+#, no-c-format
+msgid "./install_services.sh"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:144 Installing_ArjunaCore.xml:168
+#, no-c-format
+msgid ""
+"The following is example output from a computer running the Solaris "
+"operating system:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:147
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:148
+#, no-c-format
+msgid ""
+"Upon restarting the computer the transaction server and recovery manager "
+"service should be started. To uninstall the services on a Unix machine "
+"simply perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:153
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to remove files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:163
+#, no-c-format
+msgid "Run the installer script with the <command>-u</command> argument:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:171
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:173
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:174
+#, no-c-format
+msgid ""
+"The recovery manager and the transaction server services produce log files "
+"which are located in the services/logs/ directory. There are two log files "
+"per service one called <filename>&lt;service name&gt;-service.log</filename> "
+"(for example, <filename>recovery-manager-service.log</filename>), which "
+"contains information regarding the state of the service (e.g. started, "
+"stopped, restarted etc). The other is called <filename>&lt;services-name&gt;."
+"log</filename> (for example, <filename>recovery-manager.log</filename>) this "
+"contains information logged from the actual service (for example, "
+"application level logging)."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:178
+#, no-c-format
+msgid ""
+"To configure what information is logged in these files please edit the "
+"appropriate LOG4J configuration files which are located in services/config/."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:183
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:184
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:189
+#, no-c-format
+msgid "Additional jar requirements"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:190
+#, no-c-format
+msgid ""
+"In order to fully utilize all of the facilities available within ArjunaCore, "
+"it will be necessary to add all of the jar files contained in the lib "
+"directory of the distribution."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:195
+#, no-c-format
+msgid "Setting properties"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:196
+#, no-c-format
+msgid ""
+"ArjunaCore has been designed to be highly configurable at runtime through "
+"the use of various property attributes, which will be described in "
+"subsequent sections. Although these attributes can be provided at runtime on "
+"the command line, it is possible (and may be more convenient) to specify "
+"them through a single properties file. At runtime ArjunaCore looks for the "
+"file <filename>jbossjts-properties.xml</filename> in the following order:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:201
+#, no-c-format
+msgid ""
+"the current working directory. For instance, where the application was "
+"executed from."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:206
+#, no-c-format
+msgid "the user’s home directory."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:211
+#, no-c-format
+msgid ""
+"the etc directory of the ArjunaCore installation; this must be placed in "
+"your CLASSPATH."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:216
+#, no-c-format
+msgid ""
+"If found, all entries within this file will be added to the system "
+"properties. Obviously non-ArjunaCore specific properties can also be "
+"specified in this file. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:219
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:220
+#, no-c-format
+msgid ""
+"The name of the properties file can be overridden at runtime by specifying a "
+"new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> attribute variable."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/JBoss_Transactions_Installation_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Installation Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:12
+#, no-c-format
+msgid "This book is about installing the JBoss Transactions Arjuna Core"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:18
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:23
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Installing_ArjunaCore.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Installing_ArjunaCore.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Installing_ArjunaCore.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,484 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:6
+#, no-c-format
+msgid "Installing AjunaCore"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:8
+#, no-c-format
+msgid "Preparing your system"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:9
+#, no-c-format
+msgid ""
+"Before installing the <firstterm>ArjunaCore</firstterm> software, we "
+"recommend the following administrative steps be taken, assuming a default "
+"configuration for ArjunaCore:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:14
+#, no-c-format
+msgid "Install the distribution into the required location."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:19
+#, no-c-format
+msgid ""
+"ArjunaCore requires a minimum object store for storing the outcome of "
+"transactions in the event of system crashes. The location of this should be "
+"specified in the properties file using the <varname>com.arjuna.ats.arjuna."
+"objectstore.objectStoreDir environment variable</varname>, for example, "
+"<varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\\temp "
+"foo</varname>."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:24
+#, no-c-format
+msgid ""
+"By default, all object states will be stored within the defaultStore "
+"subdirectory of the object store root, for example, /usr/local/Arjuna/"
+"TransactionService/ObjectStore/defaultStore. However, this subdirectory can "
+"be changed by setting the <property>com.arjuna.ats.arjuna.objectstore."
+"localOSRoot</property> property variable accordingly."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:32
+#, no-c-format
+msgid "Operating System Services"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:33
+#, no-c-format
+msgid ""
+"It is possible to run the recovery manager and transaction server as "
+"operating system services."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:37
+#, no-c-format
+msgid "Installing and Uninstalling"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:38
+#, no-c-format
+msgid ""
+"This section explains how to install and uninstall these operating system "
+"services for the two main types of operating system: Windows and UNIX "
+"(Solaris, Linux and HP-UX)."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:43
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:44
+#, no-c-format
+msgid ""
+"There are four scripts provided which will install/uninstall the recovery "
+"manager and transaction server services, these files can be found in Services"
+"\\bin\\windows:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:50
+#, no-c-format
+msgid "Recovery Manager Service"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:55
+#, no-c-format
+msgid ""
+"<code>InstallRecoveryManagerService-NT.bat</code>: running this script will "
+"install the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:60
+#, no-c-format
+msgid ""
+"<code>UninstallRecoveryManagerService-NT.bat</code>: running this script "
+"will uninstall the Recovery Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:67
+#, no-c-format
+msgid "Transaction Server"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:72
+#, no-c-format
+msgid ""
+"<code>InstallTransactionServerService-NT.bat</code>: running this script "
+"will install the Transaction Manager as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:77
+#, no-c-format
+msgid ""
+"<code>UninstallTransactionServerService-NT.bat</code>: running this script "
+"will uninstall the Transaction Server as a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:84
+#, no-c-format
+msgid ""
+"Please note that you must either be logged on as an administrator or have "
+"administrator privileges to install/uninstall a Windows service."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:87
+#, no-c-format
+msgid ""
+"Once you have run an install script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:90
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; installed"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:91
+#, no-c-format
+msgid ""
+"This indicates that the service has been installed successfully. The service "
+"should also be visible in the services list from the Control Panel (see "
+"Figure 1 Services list from the Control Panel)"
+msgstr ""
+
+#. Tag: caption
+#: Installing_ArjunaCore.xml:98
+#, no-c-format
+msgid "Services list from the Control Panel"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:100
+#, no-c-format
+msgid ""
+"Once you have run an uninstall script you should see the following message:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:103
+#, no-c-format
+msgid "wrapper  | JBoss Transaction Service &lt;service name&gt; removed."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:104
+#, no-c-format
+msgid "This indicates that the service has been uninstalled successfully."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:108
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:109
+#, no-c-format
+msgid "To install the services on Unix machines perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:115
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to create files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:120 Installing_ArjunaCore.xml:158
+#, no-c-format
+msgid "Change directory to services/installer."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:125
+#, no-c-format
+msgid ""
+"Make sure the environment variable JAVA_HOME is set to the home directory of "
+"the JVM you wish the services to be run as. For example:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:128
+#, no-c-format
+msgid "<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:131
+#, no-c-format
+msgid "<code>setenv JAVA_HOME /opt/java</code> (for csh)"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:136
+#, no-c-format
+msgid "Run the installer script:"
+msgstr ""
+
+#. Tag: code
+#: Installing_ArjunaCore.xml:140
+#, no-c-format
+msgid "./install_services.sh"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:144 Installing_ArjunaCore.xml:168
+#, no-c-format
+msgid ""
+"The following is example output from a computer running the Solaris "
+"operating system:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:147
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh\n"
+"Adding $JAVA_HOME (/opt/java) to $PATH in\n"
+"/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh\n"
+"Installing shutdown scripts into /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing shutdown scripts into /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Installing startup scripts into /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"         S99transactionserverservice"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:148
+#, no-c-format
+msgid ""
+"Upon restarting the computer the transaction server and recovery manager "
+"service should be started. To uninstall the services on a Unix machine "
+"simply perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:153
+#, no-c-format
+msgid ""
+"Make sure that you are logged in as the user <emphasis>root</emphasis>, as "
+"the installer needs to remove files under the directory /etc."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:163
+#, no-c-format
+msgid "Run the installer script with the <command>-u</command> argument:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:171
+#, no-c-format
+msgid ""
+"# ./install_services.sh\n"
+"\n"
+"Removing startup scripts from /etc/rc3.d:\n"
+"        S98recoverymanagerservice\n"
+"        S99transactionserverservice\n"
+"Removing shutdown scripts from /etc/rcS.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc0.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc1.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice\n"
+"Removing shutdown scripts from /etc/rc2.d:\n"
+"        K01recoverymanagerservice\n"
+"        K00transactionserverservice"
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:173
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:174
+#, no-c-format
+msgid ""
+"The recovery manager and the transaction server services produce log files "
+"which are located in the services/logs/ directory. There are two log files "
+"per service one called <filename>&lt;service name&gt;-service.log</filename> "
+"(for example, <filename>recovery-manager-service.log</filename>), which "
+"contains information regarding the state of the service (e.g. started, "
+"stopped, restarted etc). The other is called <filename>&lt;services-name&gt;."
+"log</filename> (for example, <filename>recovery-manager.log</filename>) this "
+"contains information logged from the actual service (for example, "
+"application level logging)."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:178
+#, no-c-format
+msgid ""
+"To configure what information is logged in these files please edit the "
+"appropriate LOG4J configuration files which are located in services/config/."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:183
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:184
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:189
+#, no-c-format
+msgid "Additional jar requirements"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:190
+#, no-c-format
+msgid ""
+"In order to fully utilize all of the facilities available within ArjunaCore, "
+"it will be necessary to add all of the jar files contained in the lib "
+"directory of the distribution."
+msgstr ""
+
+#. Tag: title
+#: Installing_ArjunaCore.xml:195
+#, no-c-format
+msgid "Setting properties"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:196
+#, no-c-format
+msgid ""
+"ArjunaCore has been designed to be highly configurable at runtime through "
+"the use of various property attributes, which will be described in "
+"subsequent sections. Although these attributes can be provided at runtime on "
+"the command line, it is possible (and may be more convenient) to specify "
+"them through a single properties file. At runtime ArjunaCore looks for the "
+"file <filename>jbossjts-properties.xml</filename> in the following order:"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:201
+#, no-c-format
+msgid ""
+"the current working directory. For instance, where the application was "
+"executed from."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:206
+#, no-c-format
+msgid "the user’s home directory."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:211
+#, no-c-format
+msgid ""
+"the etc directory of the ArjunaCore installation; this must be placed in "
+"your CLASSPATH."
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:216
+#, no-c-format
+msgid ""
+"If found, all entries within this file will be added to the system "
+"properties. Obviously non-ArjunaCore specific properties can also be "
+"specified in this file. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Installing_ArjunaCore.xml:219
+#, no-c-format
+msgid ""
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.coordinator.asyncCommit\" value=\"NO\"/"
+"&gt;\n"
+"&lt;property\n"
+"        name=\"com.arjuna.ats.arjuna.objectstore.objectStoreDir\" value=\"c:"
+"\\temp\\ObjectStore\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Installing_ArjunaCore.xml:220
+#, no-c-format
+msgid ""
+"The name of the properties file can be overridden at runtime by specifying a "
+"new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</"
+"varname> attribute variable."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/JBoss_Transactions_Installation_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Installation_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:19+0000\n"
+"PO-Revision-Date: 2008-09-23 06:19+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+#Makefile for Transactions_JTA_Administration_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Administration_of_ArjunaTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Administration_of_ArjunaTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Administration_of_ArjunaTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,932 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:6
+#, no-c-format
+msgid "Administration of ArjunaTA"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:9
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the <firstterm>ArjunaTA</"
+"firstterm> software. There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:14
+#, no-c-format
+msgid ""
+"The present implementation of the ArjunaTA system provides no security or "
+"protection for data. The objects stored in the ArjunaTA object store are "
+"(typically) owned by the user who ran the application that created them. The "
+"Object Store and Object Manager facilities make no attempt to enforce even "
+"the limited form of protection that Unix/Windows provides. There is no "
+"checking of user or group IDs on access to objects for either reading or "
+"writing."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:19
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"<methodname>StateManager.destroy</methodname> method is invoked on the "
+"object or some application program explicitly deletes them. This means that "
+"the Object Store gradually accumulates garbage (especially during "
+"application development and testing phases). At present we have no automated "
+"garbage collection facility. Further, we have not addressed the problem of "
+"dangling references. That is, a persistent object, A, may have stored a Uid "
+"for another persistent object, B, in its passive representation on disk. "
+"There is nothing to prevent an application from deleting B even though A "
+"still contains a reference to it. When A is next activated and attempts to "
+"access B, a run-time error will occur."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:24
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The ArjunaTA software can neither "
+"detect nor correct references to old object state by new operation versions "
+"or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:29
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:37
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:38
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:44
+#, no-c-format
+msgid "ArjunaTA runtime information"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:45
+#, no-c-format
+msgid ""
+"Each module that comprises ArjunaTA possesses a class called Info. These "
+"classes all provide a single toString method that returns an XML document "
+"representing the configuration information for that module. So, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:48
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:52
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:53
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA will ensure that results of a "
+"transaction are applied consistently to all resources affected by the "
+"transaction, even if any of the application processes or the machine hosting "
+"them crash or lose network connectivity. In the case of machine (system) "
+"crash or network failure, the recovery will not take place until the system "
+"or network are restored, but the original application does not need to be "
+"restarted – recovery responsibility is delegated to the Recovery Manager "
+"process (see below). Recovery after failure requires that information about "
+"the transaction and the resources involved survives the failure and is "
+"accessible afterward: this information is held in the ActionStore, which is "
+"part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:57
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:61
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects "
+"for Java resources, an attempt to activate the Transactional Object (as when "
+"trying to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:65
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:66
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA requires that the stand-alone "
+"Recovery Manager process be running for each ObjectStore (typically one for "
+"each node on the network that is running ArjunaTA applications). The "
+"<filename>RecoveryManager</filename> file is located in the "
+"<filename>arjunacore</filename> jar file within the package <package>com."
+"arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery "
+"Manager issue the following command:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:70
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:71
+#, no-c-format
+msgid ""
+"If the -test flag is used with the Recovery Manager then it will display a "
+"<emphasis>Ready</emphasis> message when initialised, for instance:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:74
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:76
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:77
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the arjuna.properties "
+"file and then also reads the property file RecoveryManager.properties, from "
+"the same directory as it found the arjuna properties file. An entry for a "
+"property in the RecoveryManager properties file will override an entry for "
+"the same property in the main TransactionService properties file. Most of "
+"the entries are specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:81
+#, no-c-format
+msgid ""
+"A default version of RecoveryManager.properties is supplied with the "
+"distribution – this can be used without modification, except possibly the "
+"debug tracing fields (see below, Output). The rest of this section discusses "
+"the issues relevant in setting the properties to other values (in the order "
+"of their appearance in the default version of the file)."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:85
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:86
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:90
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:93
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:97
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:101
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:106
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, for example, constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:111
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:116
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, for example, the object store."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:121
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. ArjunaTA uses the default Debugging level and the default "
+"Visibility level provided by CLF, but it defines its own Facility Code. "
+"ArjunaTA uses the default level assigned to its logger objects (DEBUG). "
+"However, it uses the finer debugging features to disable or enable debug "
+"messages. Finer debugging values used by the ArjunaTA are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:124
+#, no-c-format
+msgid ""
+"Debugging level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:129
+#, no-c-format
+msgid "NO_DEBUGGING: No diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:132
+#, no-c-format
+msgid "A logger object assigned with this values discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:137
+#, no-c-format
+msgid "FULL_DEBUGGING: Full diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:140
+#, no-c-format
+msgid ""
+"A Logger object assigned with this value allows all debug requests if the "
+"facility code and the visibility level match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:145
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:150
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:155
+#, no-c-format
+msgid "DESTRUCTORS: Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:160
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:165
+#, no-c-format
+msgid "FUNCTIONS: Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:170
+#, no-c-format
+msgid "OPERATORS: Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:175
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:180
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:185
+#, no-c-format
+msgid "TRIVIAL_FUNCS: Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:190
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:195
+#, no-c-format
+msgid "ALL_TRIVIAL: Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:200
+#, no-c-format
+msgid ""
+"Visibility level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:205
+#, no-c-format
+msgid "VIS_NONE: No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:210
+#, no-c-format
+msgid "VIS_PRIVATE: Only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:215
+#, no-c-format
+msgid "VIS_PROTECTED: Only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:220
+#, no-c-format
+msgid "VIS_PUBLIC: Only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:225
+#, no-c-format
+msgid "VIS_: only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:230
+#, no-c-format
+msgid "VIS_ALL: Full Diagnostic ."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:235
+#, no-c-format
+msgid ""
+"Facility Code – ArjunaTA uses the following values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:240
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:245
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:250
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:255
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:260
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:265
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:270
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:275
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:280
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:285
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:290
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:295
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the ArjunaTA module."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:298
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the <filename>CommonLogging.xml</filename>, "
+"enables all debug messages related to the Crash Recovery protocol and issued "
+"by the ArjunaTA module."
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:301
+#, no-c-format
+msgid ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:303
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:307
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:311
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:312
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:316
+#, no-c-format
+msgid ""
+"The interface has two methods: <methodname>periodicWorkFirstPass</"
+"methodname> and <methodname>periodicWorkSecondPass</methodname>. At an "
+"interval (defined by property <property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property>), the RecoveryManager will call the first "
+"pass method on each property, then wait for a brief period (defined by "
+"property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</"
+"property>), then call the second pass of each module. Typically, in the "
+"first pass, the module scans (e.g. the relevant part of the ObjectStore) to "
+"find transactions or resources that are in-doubt (i.e. are part way through "
+"the commitment process). On the second pass, if any of the same items are "
+"still in-doubt, it is possible the original application process has crashed "
+"and the item is a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:319
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> "
+"package) to check to see if the original process is still alive, and if the "
+"transaction is still in progress. The RecoveryManager only proceeds with "
+"recovery if the original process has gone, or, if still alive, the "
+"transaction is completed. (If a server process or machine crashes, but the "
+"transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:322
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the periodicRecoveryPeriod, "
+"recoveryBackoffPeriod and the length of time it takes to scan the stores and "
+"to attempt recovery of any in-doubt transactions found, for all the recovery "
+"modules. The recovery attempt time may include connection timeouts while "
+"trying to communicate with processes or machines that have crashed or are "
+"inaccessible (which is why there are mechanisms in the recovery system to "
+"avoid trying to recover the same transaction for ever). The total iteration "
+"time will affect how long a resource will remain inaccessible after a "
+"failure – periodicRecoveryPeriod should be set accordingly (default is 120 "
+"seconds). The recoveryBackoffPeriod can be comparatively short (default is "
+"10 seconds) – its purpose is mainly to reduce the number of transactions "
+"that are candidates for recovery and which thus require a call to the "
+"original process to see if they are still in progress."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:326
+#, no-c-format
+msgid ""
+"In previous versions of ArjunaCore there was no contact mechanism, and the "
+"backoff period had to be long enough to avoid catching transactions in "
+"flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:330
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with "
+"ArjunaTA, supporting various aspects of transaction recovery including JDBC "
+"recovery. It is possible for advanced users to create their own recovery "
+"modules and register them with the Recovery Manager. The recovery modules "
+"are registered with the RecoveryManager using properties that begin with "
+"<property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These "
+"will be invoked on each pass of the periodic recovery in the sort-order of "
+"the property names – it is thus possible to predict the ordering (but note "
+"that a failure in an application process might occur while a periodic "
+"recovery pass is in progress). The default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:333
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:335
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:336
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</"
+"interfacename> interface. Implementations of this interface are loaded by "
+"giving the class name as the value of a property whose name begins with "
+"<property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The "
+"RecoveryManager calls the <methodname>scan()</methodname> method on each "
+"loaded Expiry Scanner implementation at an interval determined by the "
+"property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"property>. This value is given in hours – default is 12. An "
+"expiryScanInterval value of zero will suppress any expiry scanning. If the "
+"value as supplied is positive, the first scan is performed when "
+"RecoveryManager starts; if the value is negative, the first scan is delayed "
+"until after the first interval (using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:340
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:343
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses ArjunaCore – they contain the information that "
+"allows the RecoveryManager to determine if the process that initiated the "
+"transaction is still alive, and what the transaction status is. The expiry "
+"time for these is set by the property <property>com.arjuna.ats.arjuna."
+"recovery.transactionStatusManagerExpiryTime</property> (in hours – default "
+"is 12, zero means never expire). The expiry time should be greater than the "
+"lifetime of any single ArjunaTA-using process."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:346
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:349
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:353
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:354
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:359
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running "
+"the garbage collector) before re-throwing the exception. This is probably a "
+"transient problem and retrying the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:364
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:369
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:374
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:379
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:387
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:388
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:393
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the ArjunaTA product."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:398
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:404
+#, no-c-format
+msgid ""
+"Both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with ArjunaTA."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:408
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:413
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:418
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:424
+#, no-c-format
+msgid ""
+"These settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the administration of Arjuna TA"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/JBoss_Transactions_JTA_Administration_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,454 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA">
+	<title>Administration of ArjunaTA</title>
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Introduction">
+		<title>Introduction</title>
+		<para>
+			Apart from ensuring that the run-time system is executing normally, there is little continuous administration needed for the <firstterm>ArjunaTA</firstterm> software. There are a few points however, that should be made:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The present implementation of the ArjunaTA system provides no security or protection for data. The objects stored in the ArjunaTA object store are (typically) owned by the user who ran the application that created them. The Object Store and Object Manager facilities make no attempt to enforce even the limited form of protection that Unix/Windows provides. There is no checking of user or group IDs on access to objects for either reading or writing.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Persistent objects created in the Object Store never go away unless the <methodname>StateManager.destroy</methodname> method is invoked on the object or some application program explicitly deletes them. This means that the Object Store gradually accumulates garbage (especially during application development and testing phases). At present we have no automated garbage collection facility. Further, we have not addressed the problem of dangling references. That is, a persistent object, A, may have stored a Uid for another persistent object, B, in its passive representation on disk. There is nothing to prevent an application from deleting B even though A still contains a reference to it. When A is next activated and attempts to access B, a run-time error will occur.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					There is presently no support for version control of objects or database reconfiguration in the event of class structure changes. This is a complex research area that we have not addressed. At present, if you change the definition of a class of persistent objects, you are entirely responsible for ensuring that existing instances of the object in the Object Store are converted to the new representation. The ArjunaTA software can neither detect nor correct references to old object state by new operation versions or vice versa.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Object store management is critically important to the transaction service.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-ObjectStore_management">
+		<title>ObjectStore management</title>
+		<para>
+			Within the transaction service installation, the object store is updated regularly whenever transactions are created, or when Transactional Objects for Java is used. In a failure free environment, the only object states which should reside within the object store are those representing objects created with the Transactional Objects for Java API. However, if failures occur, transaction logs may remain in the object store until crash recovery facilities have resolved the transactions they represent. As such it is very important that the contents of the object store are not deleted without due care and attention, as this will make it impossible to resolve in doubt transactions. In addition, if multiple users share the same object store it is important that they realise this and do not simply delete the contents of the object store assuming it is an exclusive resource.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-ArjunaTA_runtime_information">
+		<title>ArjunaTA runtime information</title>
+		<para>
+			Each module that comprises ArjunaTA possesses a class called Info. These classes all provide a single toString method that returns an XML document representing the configuration information for that module. So, for example:
+		</para>
+<screen>
+	&lt;module-info name="arjuna"&gt;&lt;source-identifier&gt;unknown&lt;/source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] (Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/notes&gt;&lt;configuration&gt;&lt;properties-file dir="null"&gt;arjuna.properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Failure_recovery_administration">
+		<title>Failure recovery administration</title>
+		<para>
+			The failure recovery subsystem of ArjunaTA will ensure that results of a transaction are applied consistently to all resources affected by the transaction, even if any of the application processes or the machine hosting them crash or lose network connectivity. In the case of machine (system) crash or network failure, the recovery will not take place until the system or network are restored, but the original application does not need to be restarted – recovery responsibility is delegated to the Recovery Manager process (see below). Recovery after failure requires that information about the transaction and the resources involved survives the failure and is accessible afterward: this information is held in the ActionStore, which is part of the ObjectStore.
+		</para>
+		<warning>
+			<para>
+				If the ObjectStore is destroyed or modified, recovery may not be possible.
+			</para>
+		</warning>
+		<para>
+			Until the recovery procedures are complete, resources affected by a transaction that was in progress at the time of the failure may be inaccessible. For database resources, this may be reported as tables or rows held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects for Java resources, an attempt to activate the Transactional Object (as when trying to get a lock) will fail.
+		</para>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-The_Recovery_Manager">
+			<title>The Recovery Manager</title>
+			<para>
+				The failure recovery subsystem of ArjunaTA requires that the stand-alone Recovery Manager process be running for each ObjectStore (typically one for each node on the network that is running ArjunaTA applications). The <filename>RecoveryManager</filename> file is located in the <filename>arjunacore</filename> jar file within the package <package>com.arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery Manager issue the following command:
+			</para>
+		</formalpara>
+<screen>
+java com.arjuna.ats.arjuna.recovery.RecoveryManager
+</screen>
+		<para>
+			If the -test flag is used with the Recovery Manager then it will display a <emphasis>Ready</emphasis> message when initialised, for instance:
+		</para>
+<screen>
+java com.arjuna.ats.arjuna.recovery.RecoveryManager -test
+</screen>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Configuring_the_Recovery_Manager">
+			<title>Configuring the Recovery Manager</title>
+			<para>
+				The RecoveryManager reads the properties defined in the arjuna.properties file and then also reads the property file RecoveryManager.properties, from the same directory as it found the arjuna properties file. An entry for a property in the RecoveryManager properties file will override an entry for the same property in the main TransactionService properties file. Most of the entries are specific to the Recovery Manager.
+			</para>
+		</formalpara>
+		<para>
+			A default version of RecoveryManager.properties is supplied with the distribution – this can be used without modification, except possibly the debug tracing fields (see below, Output). The rest of this section discusses the issues relevant in setting the properties to other values (in the order of their appearance in the default version of the file).
+		</para>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Output">
+			<title>Output</title>
+			<para>
+				It is likely that installations will want to have some form of output from the RecoveryManager, to provide a record of what recovery activity has taken place. RecoveryManager uses the logging tracing mechanism provided by the Arjuna Common Logging Framework (CLF), which provides a high level interface that hides differences that exist between existing logging APIs such Jakarta log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache Commons Logging framework and configuration is assumed to occur through that framework.
+			</para>
+		</formalpara>
+		<para>
+			With the CLF applications make logging calls on logger objects. Loggers may use logging Levels to decide if they are interested in a particular log message. Each log message has an associated log Level, that gives the importance and urgency of a log message. The set of possible Log Levels are DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL.
+		</para>
+		<para>
+			The CLF provides an extension to filter logging messages according to finer granularity an application may define. That is, when a log message is provided to the logger with the DEBUG level, additional conditions can be specified to determine if the log message is enabled or not.
+		</para>
+		<note>
+			<para>
+				These conditions are applied if and only the DEBUG level is enabled and the log request performed by the application specifies debugging granularity.
+			</para>
+		</note>
+		<para>
+			When enabled, Debugging is filtered conditionally on three variables:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Debugging level: this is where the log request with the DEBUG Level is generated from, for example, constructors or basic methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Visibility level: the visibility of the constructor, method, etc. that generates the debugging.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Facility code: for instance the package or sub-module within which debugging is generated, for example, the object store.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			According to these variables the CLF defines three interfaces. A particular product may implement its own classes according to its own finer granularity. ArjunaTA uses the default Debugging level and the default Visibility level provided by CLF, but it defines its own Facility Code. ArjunaTA uses the default level assigned to its logger objects (DEBUG). However, it uses the finer debugging features to disable or enable debug messages. Finer debugging values used by the ArjunaTA are defined below:
+		</para>
+		<para>
+			Debugging level – ArjunaTA uses the default values defined in the class <classname>com.arjuna.common.util.logging.DebugLevel</classname>
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					NO_DEBUGGING: No diagnostics.
+				</para>
+				<para>
+					A logger object assigned with this values discard all debug requests
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FULL_DEBUGGING: Full diagnostics.
+				</para>
+				<para>
+					A Logger object assigned with this value allows all debug requests if the facility code and the visibility level match those allowed by the logger.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Additional Debugging Values are:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					CONSTRUCTORS: Diagnostics from constructors.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DESTRUCTORS: Diagnostics from finalizers.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FUNCTIONS: Diagnostics from functions.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					OPERATORS: Diagnostics from operators, such as equals.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FUNCS_AND_OPS: Diagnostics from functions and operations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					TRIVIAL_FUNCS: Diagnostics from trivial functions.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					ALL_TRIVIAL: Diagnostics from all trivial operations.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Visibility level – ArjunaTA uses the default values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					VIS_NONE: No Diagnostic
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PRIVATE: Only from private methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PROTECTED: Only from protected methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PUBLIC: Only from public methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PACKAGE: only from package methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_ALL: Full Diagnostic .
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Facility Code – ArjunaTA uses the following values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_ABSTRACT_REC = 0x00000008 (abstract records).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_OBJECT_STORE = 0x00000010 (object store implementations).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_STATE_MAN = 0x00000020 (state management and StateManager).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_SHMEM = 0x00000040 (shared memory implementation classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_GENERAL = 0x00000080 (general classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_THREADING = 0x00002000 (threading classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager).
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			To ensure appropriate output, it is necessary to set some of the finer debug properties explicitly in the <filename>CommonLogging.xml</filename> file, to enable logging messages issued by the ArjunaTA module.
+		</para>
+		<para>
+			Messages describing the start and the periodical behavior made by the RecoveryManager are output using the INFO level. If other debug tracing is wanted, the finer debugging level should be set appropriately. For instance, the following configuration, in the <filename>CommonLogging.xml</filename>, enables all debug messages related to the Crash Recovery protocol and issued by the ArjunaTA module.
+		</para>
+<screen>
+&lt;!--  Common logging related properties.   --&gt;
+	&lt;property
+		 name="com.arjuna.common.util.logging.DebugLevel"
+		 value="0x00000000"/&gt;
+	&lt;property
+		 name="com.arjuna.common.util.logging.FacilityLevel"
+		 value="0xffffffff"/&gt;
+	&lt;property
+		 name="com.arjuna.common.util.logging.VisibilityLevel"
+		 value="0xffffffff"/&gt;
+</screen>
+		<note>
+			<para>
+				Two logger objects are provided, one manages I18N messages and a second does not.
+			</para>
+		</note>
+		<para>
+			Setting the normal recovery messages to the INFO level allows the RecoveryManager producing a moderate level of reporting. If nothing is going on, it just reports the entry into each module for each periodic pass. To disable INFO messages produced by the Recovery Manager, the logging level could be set to the higher level: ERROR. Setting the level to ERROR means that the RecoveryManager will only produce error, warning or fatal messages.
+		</para>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Periodic_Recovery">
+			<title>Periodic Recovery</title>
+			<para>
+				The RecoveryManager scans the ObjectStore and other locations of information, looking for transactions and resources that require, or may require recovery. The scans and recovery processing are performed by recovery modules, (instances of classes that implement the com.arjuna.ats.arjuna.recovery.RecoveryModule interface), each with responsibility for a particular category of transaction or resource. The set of recovery modules used are dynamically loaded, using properties found in the RecoveryManager property file.
+			</para>
+		</formalpara>
+		<para>
+			The interface has two methods: <methodname>periodicWorkFirstPass</methodname> and <methodname>periodicWorkSecondPass</methodname>. At an interval (defined by property <property>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</property>), the RecoveryManager will call the first pass method on each property, then wait for a brief period (defined by property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</property>), then call the second pass of each module. Typically, in the first pass, the module scans (e.g. the relevant part of the ObjectStore) to find transactions or resources that are in-doubt (i.e. are part way through the commitment process). On the second pass, if any of the same items are still in-doubt, it is possible the original application process has crashed and the item is a candidate for recovery.
+		</para>
+		<para>
+			An attempt, by the RecoveryManager, to recover a transaction that is still progressing in the original process(es) is likely to break the consistency. Accordingly, the recovery modules use a mechanism (implemented in the <package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> package) to check to see if the original process is still alive, and if the transaction is still in progress. The RecoveryManager only proceeds with recovery if the original process has gone, or, if still alive, the transaction is completed. (If a server process or machine crashes, but the transaction-initiating process survives, the transaction will complete, usually generating a warning. Recovery of such a transaction is the RecoveryManager’s responsibility).
+		</para>
+		<para>
+			It is clearly important to set the interval periods appropriately. The total iteration time will be the sum of the periodicRecoveryPeriod, recoveryBackoffPeriod and the length of time it takes to scan the stores and to attempt recovery of any in-doubt transactions found, for all the recovery modules. The recovery attempt time may include connection timeouts while trying to communicate with processes or machines that have crashed or are inaccessible (which is why there are mechanisms in the recovery system to avoid trying to recover the same transaction for ever). The total iteration time will affect how long a resource will remain inaccessible after a failure – periodicRecoveryPeriod should be set accordingly (default is 120 seconds). The recoveryBackoffPeriod can be comparatively short (default is 10 seconds) – its purpose is mainly to reduce the number of transactions that are candidates for recovery and which thus require a call to the original process to see if t!
 hey are still in progress.
+		</para>
+		<note>
+			<para>
+				In previous versions of ArjunaCore there was no contact mechanism, and the backoff period had to be long enough to avoid catching transactions in flight at all. From 3.0, there is no such risk.
+			</para>
+		</note>
+		<para>
+			Two recovery modules (implementations of the <interfacename>com.arjuna.ats.arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with ArjunaTA, supporting various aspects of transaction recovery including JDBC recovery. It is possible for advanced users to create their own recovery modules and register them with the Recovery Manager. The recovery modules are registered with the RecoveryManager using properties that begin with <property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These will be invoked on each pass of the periodic recovery in the sort-order of the property names – it is thus possible to predict the ordering (but note that a failure in an application process might occur while a periodic recovery pass is in progress). The default Recovery Extension settings are:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule
+	
+com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj.recovery.TORecoveryModule
+</screen>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Expired_entry_removal">
+			<title>Expired entry removal</title>
+			<para>
+				The operation of the recovery subsystem will cause some entries to be made in the ObjectStore that will not be removed in normal progress. The RecoveryManager has a facility for scanning for these and removing items that are very old. Scans and removals are performed by implementations of the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</interfacename> interface. Implementations of this interface are loaded by giving the class name as the value of a property whose name begins with <property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The RecoveryManager calls the <methodname>scan()</methodname> method on each loaded Expiry Scanner implementation at an interval determined by the property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</property>. This value is given in hours – default is 12. An expiryScanInterval value of zero will suppress any expiry scanning. If the value as supplied is positive, the first scan is performed whe!
 n RecoveryManager starts; if the value is negative, the first scan is delayed until after the first interval (using the absolute value)
+			</para>
+		</formalpara>
+		<para>
+			The kinds of item that are scanned for expiry are:
+		</para>
+		<para>
+			TransactionStatusManager items : one of these is created by every application process that uses ArjunaCore – they contain the information that allows the RecoveryManager to determine if the process that initiated the transaction is still alive, and what the transaction status is. The expiry time for these is set by the property <property>com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime</property> (in hours – default is 12, zero means never expire). The expiry time should be greater than the lifetime of any single ArjunaTA-using process.
+		</para>
+		<para>
+			The Expiry Scanner properties for these are:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com.arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Errors_and_Exceptions">
+		<title>Errors and Exceptions</title>
+		<para>
+			In this section we shall cover the types of errors and exceptions which may be thrown or reported during a transactional application and give probable indications of their causes.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					NO_MEMORY: the application has run out of memory (thrown an OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running the garbage collector) before re-throwing the exception. This is probably a transient problem and retrying the invocation should succeed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which means that the transaction system must shut down. Prior to this error being thrown the transaction service will have ensured that all running transactions have rolled back. If caught, the application should tidy up and exit. If further work is attempted, application consistency may be violated.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to use the transaction service in a manner inconsistent with the current licence. The transaction service will not allow further forward progress for existing or new transactions.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while the transaction service attempted to use the object store. Further forward progress is not possible.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Object store warnings about access problems on states may occur during the normal execution of crash recovery. This is the result of multiple concurrent attempts to perform recovery on the same transaction. It can be safely ignored.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Selecting_the_JTA_implementation">
+		<title>Selecting the JTA implementation</title>
+		<para>
+			Two variants of the JTA implementation are now provided and accessible through the same interface. These are:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					A purely local JTA, which only allows non-distributed JTA transactions to be executed. This is the only version available with the ArjunaTA product.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					A remote, CORBA-based JTA, which allows distributed JTA transactions to be executed. This version is only available with the ArjunaJTS product and requires a supported CORBA ORB.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				Both of these implementations are fully compatible with the transactional JDBC driver provided with ArjunaTA.
+			</para>
+		</note>
+		<para>
+			In order to select the local JTA implementation it is necessary to perform the following steps:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</code>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</code>.
+				</para>
+			</listitem>
+		</orderedlist>
+		<note>
+			<para>
+				These settings are the default values for the properties and do not need to be specified if the local implementation is required.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_JTA_Administration_Guide-Transactions_JTA_Administration_Guide">
+	<title>JBoss Transactions JTA Administration Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is about the administration of Arjuna TA</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_JTA_Administration_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Administration_of_ArjunaTA.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="pref-Transactions_JTA_Administration_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	</xi:fallback></xi:include>
+</preface>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Administration_of_ArjunaTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Administration_of_ArjunaTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Administration_of_ArjunaTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,932 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:6
+#, no-c-format
+msgid "Administration of ArjunaTA"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:9
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the <firstterm>ArjunaTA</"
+"firstterm> software. There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:14
+#, no-c-format
+msgid ""
+"The present implementation of the ArjunaTA system provides no security or "
+"protection for data. The objects stored in the ArjunaTA object store are "
+"(typically) owned by the user who ran the application that created them. The "
+"Object Store and Object Manager facilities make no attempt to enforce even "
+"the limited form of protection that Unix/Windows provides. There is no "
+"checking of user or group IDs on access to objects for either reading or "
+"writing."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:19
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"<methodname>StateManager.destroy</methodname> method is invoked on the "
+"object or some application program explicitly deletes them. This means that "
+"the Object Store gradually accumulates garbage (especially during "
+"application development and testing phases). At present we have no automated "
+"garbage collection facility. Further, we have not addressed the problem of "
+"dangling references. That is, a persistent object, A, may have stored a Uid "
+"for another persistent object, B, in its passive representation on disk. "
+"There is nothing to prevent an application from deleting B even though A "
+"still contains a reference to it. When A is next activated and attempts to "
+"access B, a run-time error will occur."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:24
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The ArjunaTA software can neither "
+"detect nor correct references to old object state by new operation versions "
+"or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:29
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:37
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:38
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:44
+#, no-c-format
+msgid "ArjunaTA runtime information"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:45
+#, no-c-format
+msgid ""
+"Each module that comprises ArjunaTA possesses a class called Info. These "
+"classes all provide a single toString method that returns an XML document "
+"representing the configuration information for that module. So, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:48
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:52
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:53
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA will ensure that results of a "
+"transaction are applied consistently to all resources affected by the "
+"transaction, even if any of the application processes or the machine hosting "
+"them crash or lose network connectivity. In the case of machine (system) "
+"crash or network failure, the recovery will not take place until the system "
+"or network are restored, but the original application does not need to be "
+"restarted – recovery responsibility is delegated to the Recovery Manager "
+"process (see below). Recovery after failure requires that information about "
+"the transaction and the resources involved survives the failure and is "
+"accessible afterward: this information is held in the ActionStore, which is "
+"part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:57
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:61
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects "
+"for Java resources, an attempt to activate the Transactional Object (as when "
+"trying to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:65
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:66
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA requires that the stand-alone "
+"Recovery Manager process be running for each ObjectStore (typically one for "
+"each node on the network that is running ArjunaTA applications). The "
+"<filename>RecoveryManager</filename> file is located in the "
+"<filename>arjunacore</filename> jar file within the package <package>com."
+"arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery "
+"Manager issue the following command:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:70
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:71
+#, no-c-format
+msgid ""
+"If the -test flag is used with the Recovery Manager then it will display a "
+"<emphasis>Ready</emphasis> message when initialised, for instance:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:74
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:76
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:77
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the arjuna.properties "
+"file and then also reads the property file RecoveryManager.properties, from "
+"the same directory as it found the arjuna properties file. An entry for a "
+"property in the RecoveryManager properties file will override an entry for "
+"the same property in the main TransactionService properties file. Most of "
+"the entries are specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:81
+#, no-c-format
+msgid ""
+"A default version of RecoveryManager.properties is supplied with the "
+"distribution – this can be used without modification, except possibly the "
+"debug tracing fields (see below, Output). The rest of this section discusses "
+"the issues relevant in setting the properties to other values (in the order "
+"of their appearance in the default version of the file)."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:85
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:86
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:90
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:93
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:97
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:101
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:106
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, for example, constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:111
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:116
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, for example, the object store."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:121
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. ArjunaTA uses the default Debugging level and the default "
+"Visibility level provided by CLF, but it defines its own Facility Code. "
+"ArjunaTA uses the default level assigned to its logger objects (DEBUG). "
+"However, it uses the finer debugging features to disable or enable debug "
+"messages. Finer debugging values used by the ArjunaTA are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:124
+#, no-c-format
+msgid ""
+"Debugging level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:129
+#, no-c-format
+msgid "NO_DEBUGGING: No diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:132
+#, no-c-format
+msgid "A logger object assigned with this values discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:137
+#, no-c-format
+msgid "FULL_DEBUGGING: Full diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:140
+#, no-c-format
+msgid ""
+"A Logger object assigned with this value allows all debug requests if the "
+"facility code and the visibility level match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:145
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:150
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:155
+#, no-c-format
+msgid "DESTRUCTORS: Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:160
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:165
+#, no-c-format
+msgid "FUNCTIONS: Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:170
+#, no-c-format
+msgid "OPERATORS: Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:175
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:180
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:185
+#, no-c-format
+msgid "TRIVIAL_FUNCS: Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:190
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:195
+#, no-c-format
+msgid "ALL_TRIVIAL: Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:200
+#, no-c-format
+msgid ""
+"Visibility level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:205
+#, no-c-format
+msgid "VIS_NONE: No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:210
+#, no-c-format
+msgid "VIS_PRIVATE: Only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:215
+#, no-c-format
+msgid "VIS_PROTECTED: Only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:220
+#, no-c-format
+msgid "VIS_PUBLIC: Only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:225
+#, no-c-format
+msgid "VIS_: only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:230
+#, no-c-format
+msgid "VIS_ALL: Full Diagnostic ."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:235
+#, no-c-format
+msgid ""
+"Facility Code – ArjunaTA uses the following values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:240
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:245
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:250
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:255
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:260
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:265
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:270
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:275
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:280
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:285
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:290
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:295
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the ArjunaTA module."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:298
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the <filename>CommonLogging.xml</filename>, "
+"enables all debug messages related to the Crash Recovery protocol and issued "
+"by the ArjunaTA module."
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:301
+#, no-c-format
+msgid ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:303
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:307
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:311
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:312
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:316
+#, no-c-format
+msgid ""
+"The interface has two methods: <methodname>periodicWorkFirstPass</"
+"methodname> and <methodname>periodicWorkSecondPass</methodname>. At an "
+"interval (defined by property <property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property>), the RecoveryManager will call the first "
+"pass method on each property, then wait for a brief period (defined by "
+"property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</"
+"property>), then call the second pass of each module. Typically, in the "
+"first pass, the module scans (e.g. the relevant part of the ObjectStore) to "
+"find transactions or resources that are in-doubt (i.e. are part way through "
+"the commitment process). On the second pass, if any of the same items are "
+"still in-doubt, it is possible the original application process has crashed "
+"and the item is a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:319
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> "
+"package) to check to see if the original process is still alive, and if the "
+"transaction is still in progress. The RecoveryManager only proceeds with "
+"recovery if the original process has gone, or, if still alive, the "
+"transaction is completed. (If a server process or machine crashes, but the "
+"transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:322
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the periodicRecoveryPeriod, "
+"recoveryBackoffPeriod and the length of time it takes to scan the stores and "
+"to attempt recovery of any in-doubt transactions found, for all the recovery "
+"modules. The recovery attempt time may include connection timeouts while "
+"trying to communicate with processes or machines that have crashed or are "
+"inaccessible (which is why there are mechanisms in the recovery system to "
+"avoid trying to recover the same transaction for ever). The total iteration "
+"time will affect how long a resource will remain inaccessible after a "
+"failure – periodicRecoveryPeriod should be set accordingly (default is 120 "
+"seconds). The recoveryBackoffPeriod can be comparatively short (default is "
+"10 seconds) – its purpose is mainly to reduce the number of transactions "
+"that are candidates for recovery and which thus require a call to the "
+"original process to see if they are still in progress."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:326
+#, no-c-format
+msgid ""
+"In previous versions of ArjunaCore there was no contact mechanism, and the "
+"backoff period had to be long enough to avoid catching transactions in "
+"flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:330
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with "
+"ArjunaTA, supporting various aspects of transaction recovery including JDBC "
+"recovery. It is possible for advanced users to create their own recovery "
+"modules and register them with the Recovery Manager. The recovery modules "
+"are registered with the RecoveryManager using properties that begin with "
+"<property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These "
+"will be invoked on each pass of the periodic recovery in the sort-order of "
+"the property names – it is thus possible to predict the ordering (but note "
+"that a failure in an application process might occur while a periodic "
+"recovery pass is in progress). The default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:333
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:335
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:336
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</"
+"interfacename> interface. Implementations of this interface are loaded by "
+"giving the class name as the value of a property whose name begins with "
+"<property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The "
+"RecoveryManager calls the <methodname>scan()</methodname> method on each "
+"loaded Expiry Scanner implementation at an interval determined by the "
+"property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"property>. This value is given in hours – default is 12. An "
+"expiryScanInterval value of zero will suppress any expiry scanning. If the "
+"value as supplied is positive, the first scan is performed when "
+"RecoveryManager starts; if the value is negative, the first scan is delayed "
+"until after the first interval (using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:340
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:343
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses ArjunaCore – they contain the information that "
+"allows the RecoveryManager to determine if the process that initiated the "
+"transaction is still alive, and what the transaction status is. The expiry "
+"time for these is set by the property <property>com.arjuna.ats.arjuna."
+"recovery.transactionStatusManagerExpiryTime</property> (in hours – default "
+"is 12, zero means never expire). The expiry time should be greater than the "
+"lifetime of any single ArjunaTA-using process."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:346
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:349
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:353
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:354
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:359
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running "
+"the garbage collector) before re-throwing the exception. This is probably a "
+"transient problem and retrying the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:364
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:369
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:374
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:379
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:387
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:388
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:393
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the ArjunaTA product."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:398
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:404
+#, no-c-format
+msgid ""
+"Both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with ArjunaTA."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:408
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:413
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:418
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:424
+#, no-c-format
+msgid ""
+"These settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the administration of Arjuna TA"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/JBoss_Transactions_JTA_Administration_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Administration_of_ArjunaTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Administration_of_ArjunaTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Administration_of_ArjunaTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,932 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:6
+#, no-c-format
+msgid "Administration of ArjunaTA"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:9
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the <firstterm>ArjunaTA</"
+"firstterm> software. There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:14
+#, no-c-format
+msgid ""
+"The present implementation of the ArjunaTA system provides no security or "
+"protection for data. The objects stored in the ArjunaTA object store are "
+"(typically) owned by the user who ran the application that created them. The "
+"Object Store and Object Manager facilities make no attempt to enforce even "
+"the limited form of protection that Unix/Windows provides. There is no "
+"checking of user or group IDs on access to objects for either reading or "
+"writing."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:19
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"<methodname>StateManager.destroy</methodname> method is invoked on the "
+"object or some application program explicitly deletes them. This means that "
+"the Object Store gradually accumulates garbage (especially during "
+"application development and testing phases). At present we have no automated "
+"garbage collection facility. Further, we have not addressed the problem of "
+"dangling references. That is, a persistent object, A, may have stored a Uid "
+"for another persistent object, B, in its passive representation on disk. "
+"There is nothing to prevent an application from deleting B even though A "
+"still contains a reference to it. When A is next activated and attempts to "
+"access B, a run-time error will occur."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:24
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The ArjunaTA software can neither "
+"detect nor correct references to old object state by new operation versions "
+"or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:29
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:37
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:38
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:44
+#, no-c-format
+msgid "ArjunaTA runtime information"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:45
+#, no-c-format
+msgid ""
+"Each module that comprises ArjunaTA possesses a class called Info. These "
+"classes all provide a single toString method that returns an XML document "
+"representing the configuration information for that module. So, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:48
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:52
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:53
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA will ensure that results of a "
+"transaction are applied consistently to all resources affected by the "
+"transaction, even if any of the application processes or the machine hosting "
+"them crash or lose network connectivity. In the case of machine (system) "
+"crash or network failure, the recovery will not take place until the system "
+"or network are restored, but the original application does not need to be "
+"restarted – recovery responsibility is delegated to the Recovery Manager "
+"process (see below). Recovery after failure requires that information about "
+"the transaction and the resources involved survives the failure and is "
+"accessible afterward: this information is held in the ActionStore, which is "
+"part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:57
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:61
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects "
+"for Java resources, an attempt to activate the Transactional Object (as when "
+"trying to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:65
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:66
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA requires that the stand-alone "
+"Recovery Manager process be running for each ObjectStore (typically one for "
+"each node on the network that is running ArjunaTA applications). The "
+"<filename>RecoveryManager</filename> file is located in the "
+"<filename>arjunacore</filename> jar file within the package <package>com."
+"arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery "
+"Manager issue the following command:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:70
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:71
+#, no-c-format
+msgid ""
+"If the -test flag is used with the Recovery Manager then it will display a "
+"<emphasis>Ready</emphasis> message when initialised, for instance:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:74
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:76
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:77
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the arjuna.properties "
+"file and then also reads the property file RecoveryManager.properties, from "
+"the same directory as it found the arjuna properties file. An entry for a "
+"property in the RecoveryManager properties file will override an entry for "
+"the same property in the main TransactionService properties file. Most of "
+"the entries are specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:81
+#, no-c-format
+msgid ""
+"A default version of RecoveryManager.properties is supplied with the "
+"distribution – this can be used without modification, except possibly the "
+"debug tracing fields (see below, Output). The rest of this section discusses "
+"the issues relevant in setting the properties to other values (in the order "
+"of their appearance in the default version of the file)."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:85
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:86
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:90
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:93
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:97
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:101
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:106
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, for example, constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:111
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:116
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, for example, the object store."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:121
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. ArjunaTA uses the default Debugging level and the default "
+"Visibility level provided by CLF, but it defines its own Facility Code. "
+"ArjunaTA uses the default level assigned to its logger objects (DEBUG). "
+"However, it uses the finer debugging features to disable or enable debug "
+"messages. Finer debugging values used by the ArjunaTA are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:124
+#, no-c-format
+msgid ""
+"Debugging level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:129
+#, no-c-format
+msgid "NO_DEBUGGING: No diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:132
+#, no-c-format
+msgid "A logger object assigned with this values discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:137
+#, no-c-format
+msgid "FULL_DEBUGGING: Full diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:140
+#, no-c-format
+msgid ""
+"A Logger object assigned with this value allows all debug requests if the "
+"facility code and the visibility level match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:145
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:150
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:155
+#, no-c-format
+msgid "DESTRUCTORS: Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:160
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:165
+#, no-c-format
+msgid "FUNCTIONS: Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:170
+#, no-c-format
+msgid "OPERATORS: Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:175
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:180
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:185
+#, no-c-format
+msgid "TRIVIAL_FUNCS: Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:190
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:195
+#, no-c-format
+msgid "ALL_TRIVIAL: Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:200
+#, no-c-format
+msgid ""
+"Visibility level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:205
+#, no-c-format
+msgid "VIS_NONE: No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:210
+#, no-c-format
+msgid "VIS_PRIVATE: Only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:215
+#, no-c-format
+msgid "VIS_PROTECTED: Only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:220
+#, no-c-format
+msgid "VIS_PUBLIC: Only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:225
+#, no-c-format
+msgid "VIS_: only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:230
+#, no-c-format
+msgid "VIS_ALL: Full Diagnostic ."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:235
+#, no-c-format
+msgid ""
+"Facility Code – ArjunaTA uses the following values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:240
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:245
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:250
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:255
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:260
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:265
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:270
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:275
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:280
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:285
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:290
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:295
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the ArjunaTA module."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:298
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the <filename>CommonLogging.xml</filename>, "
+"enables all debug messages related to the Crash Recovery protocol and issued "
+"by the ArjunaTA module."
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:301
+#, no-c-format
+msgid ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:303
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:307
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:311
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:312
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:316
+#, no-c-format
+msgid ""
+"The interface has two methods: <methodname>periodicWorkFirstPass</"
+"methodname> and <methodname>periodicWorkSecondPass</methodname>. At an "
+"interval (defined by property <property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property>), the RecoveryManager will call the first "
+"pass method on each property, then wait for a brief period (defined by "
+"property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</"
+"property>), then call the second pass of each module. Typically, in the "
+"first pass, the module scans (e.g. the relevant part of the ObjectStore) to "
+"find transactions or resources that are in-doubt (i.e. are part way through "
+"the commitment process). On the second pass, if any of the same items are "
+"still in-doubt, it is possible the original application process has crashed "
+"and the item is a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:319
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> "
+"package) to check to see if the original process is still alive, and if the "
+"transaction is still in progress. The RecoveryManager only proceeds with "
+"recovery if the original process has gone, or, if still alive, the "
+"transaction is completed. (If a server process or machine crashes, but the "
+"transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:322
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the periodicRecoveryPeriod, "
+"recoveryBackoffPeriod and the length of time it takes to scan the stores and "
+"to attempt recovery of any in-doubt transactions found, for all the recovery "
+"modules. The recovery attempt time may include connection timeouts while "
+"trying to communicate with processes or machines that have crashed or are "
+"inaccessible (which is why there are mechanisms in the recovery system to "
+"avoid trying to recover the same transaction for ever). The total iteration "
+"time will affect how long a resource will remain inaccessible after a "
+"failure – periodicRecoveryPeriod should be set accordingly (default is 120 "
+"seconds). The recoveryBackoffPeriod can be comparatively short (default is "
+"10 seconds) – its purpose is mainly to reduce the number of transactions "
+"that are candidates for recovery and which thus require a call to the "
+"original process to see if they are still in progress."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:326
+#, no-c-format
+msgid ""
+"In previous versions of ArjunaCore there was no contact mechanism, and the "
+"backoff period had to be long enough to avoid catching transactions in "
+"flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:330
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with "
+"ArjunaTA, supporting various aspects of transaction recovery including JDBC "
+"recovery. It is possible for advanced users to create their own recovery "
+"modules and register them with the Recovery Manager. The recovery modules "
+"are registered with the RecoveryManager using properties that begin with "
+"<property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These "
+"will be invoked on each pass of the periodic recovery in the sort-order of "
+"the property names – it is thus possible to predict the ordering (but note "
+"that a failure in an application process might occur while a periodic "
+"recovery pass is in progress). The default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:333
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:335
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:336
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</"
+"interfacename> interface. Implementations of this interface are loaded by "
+"giving the class name as the value of a property whose name begins with "
+"<property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The "
+"RecoveryManager calls the <methodname>scan()</methodname> method on each "
+"loaded Expiry Scanner implementation at an interval determined by the "
+"property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"property>. This value is given in hours – default is 12. An "
+"expiryScanInterval value of zero will suppress any expiry scanning. If the "
+"value as supplied is positive, the first scan is performed when "
+"RecoveryManager starts; if the value is negative, the first scan is delayed "
+"until after the first interval (using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:340
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:343
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses ArjunaCore – they contain the information that "
+"allows the RecoveryManager to determine if the process that initiated the "
+"transaction is still alive, and what the transaction status is. The expiry "
+"time for these is set by the property <property>com.arjuna.ats.arjuna."
+"recovery.transactionStatusManagerExpiryTime</property> (in hours – default "
+"is 12, zero means never expire). The expiry time should be greater than the "
+"lifetime of any single ArjunaTA-using process."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:346
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:349
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:353
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:354
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:359
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running "
+"the garbage collector) before re-throwing the exception. This is probably a "
+"transient problem and retrying the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:364
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:369
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:374
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:379
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:387
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:388
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:393
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the ArjunaTA product."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:398
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:404
+#, no-c-format
+msgid ""
+"Both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with ArjunaTA."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:408
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:413
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:418
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:424
+#, no-c-format
+msgid ""
+"These settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the administration of Arjuna TA"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/JBoss_Transactions_JTA_Administration_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Administration_of_ArjunaTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Administration_of_ArjunaTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Administration_of_ArjunaTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1232 @@
+# translation of Administration_of_ArjunaTA.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_JTA_Administration_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Administration_of_ArjunaTA\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-22 16:53+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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
+#: Administration_of_ArjunaTA.xml:6
+#, no-c-format
+msgid "Administration of ArjunaTA"
+msgstr "ArjunaTA の管理"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:9
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the <firstterm>ArjunaTA</"
+"firstterm> software. There are a few points however, that should be made:"
+msgstr ""
+"ランタイムシステムが正常に稼働していることを確認する以外にも、 "
+"<firstterm>ArjunaTA</firstterm> ソフトウェアには若干ですが継続的な管理が必要"
+"となります。 注意点をいくつかあげておきます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:14
+#, no-c-format
+msgid ""
+"The present implementation of the ArjunaTA system provides no security or "
+"protection for data. The objects stored in the ArjunaTA object store are "
+"(typically) owned by the user who ran the application that created them. The "
+"Object Store and Object Manager facilities make no attempt to enforce even "
+"the limited form of protection that Unix/Windows provides. There is no "
+"checking of user or group IDs on access to objects for either reading or "
+"writing."
+msgstr ""
+"ArjunaTA システムの現在の実装はデータに関する保護や安全性については提供してい"
+"ません。 ArjunaTA オブジェクトストアに格納されるオブジェクトは (一般的に) そ"
+"れらを作成したアプリケーション実行者によって所有されます。 Unix あるいは "
+"Windows から提供される限られた保護形式であってもオブジェクトストアおよびオブ"
+"ジェクトマネージャ機能はこれらの強制実行を試行しません。 読み取りまたは書き込"
+"みのオブジェクトへのアクセスに関してユーザーまたはグループ ID のチェック機能"
+"はありません。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:19
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"<methodname>StateManager.destroy</methodname> method is invoked on the "
+"object or some application program explicitly deletes them. This means that "
+"the Object Store gradually accumulates garbage (especially during "
+"application development and testing phases). At present we have no automated "
+"garbage collection facility. Further, we have not addressed the problem of "
+"dangling references. That is, a persistent object, A, may have stored a Uid "
+"for another persistent object, B, in its passive representation on disk. "
+"There is nothing to prevent an application from deleting B even though A "
+"still contains a reference to it. When A is next activated and attempts to "
+"access B, a run-time error will occur."
+msgstr ""
+"オブジェクトストア内で作成される永続性オブジェクトは、 オブジェクト上で "
+"<methodname>StateManager.destroy</methodname> メソッドが呼び出されるか、 なん"
+"らかのアプリケーションプログラムが明示的にそのオブジェクトを削除しない限りな"
+"くなることはありません。 つまり、 オブジェクトストアは徐々にガーベッジを堆積"
+"させていくということです (とくにアプリケーション開発およびテスト段階)。現"
+"在、 自動化されたガーベッジコレクションの機能はありません。 また、 参照に関す"
+"る問題についても対処していません。 つまり、 永続オブジェクト A はディスク状に"
+"そのパッシブ表現で別の永続オブジェクト B の Uid を格納している可能性があると"
+"いうことです。 A が B に対する参照を維持していてもアプリケーションによる B の"
+"削除を妨げる方法がありません。 A が次回アクティブになり B へのアクセスを試行"
+"するとランタイムエラーが発生することになります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:24
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The ArjunaTA software can neither "
+"detect nor correct references to old object state by new operation versions "
+"or vice versa."
+msgstr ""
+"クラス構成が変更された場合、 現在、 データベースの再構成やオブジェクトのバー"
+"ジョンコントロールには対応していません。 これは対処されていない複雑な研究対象"
+"エリアとなります。 現在、 永続オブジェクトのクラスの定義を変更した場合、 オブ"
+"ジェクトストア内のオブジェクトの既存インスタンスが新しい表現に変換されるよう"
+"にするのは完全に変更者側の責となります。 ArjunaTA ソフトウェアは新しいオペ"
+"レーションバージョンでは古いオブジェクトへの参照を検出したり修正することはで"
+"きません。 またこの逆もできません。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:29
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+"オブジェクトストア管理はトランザクションサービスにとって欠かすことのできない"
+"重要なものとなります。"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:37
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "オブジェクトストア管理"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:38
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"トランザクションサービスのインストール内では、 トランザクションが作成されると"
+"きは常に、 あるいは Java 用のトランザクション的オブジェクトが使用される場"
+"合、 オブジェクトストアは定期的に更新されます。 障害のない環境では、 オブジェ"
+"クトストア内に存在すべき唯一のオブジェクト状態とは Java API 用のトランザク"
+"ション的オブジェクトで作成されるオブジェクトを表すものです。 ただし、 障害が"
+"発生すると、 トランザクションのログはクラッシュリカバリ機能が表しているトラン"
+"ザクションを解決するまでオブジェクトストア内に残る可能性があります。 このよう"
+"に、 不注意な削除により不審なトランザクションでは解決が不可能となるため、 オ"
+"ブジェクトストアの内容が不注意に削除されないようにすることが重要となります。 "
+"また、 複数のユーザーが同じオブジェクトストアを共有している場合には、 互いに"
+"これを認識しあい専用リソースであると勘違いしてオブジェクトストアの内容を簡単"
+"に削除しないようすることも重要です。"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:44
+#, no-c-format
+msgid "ArjunaTA runtime information"
+msgstr "ArjunaTA ランタイム情報"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:45
+#, no-c-format
+msgid ""
+"Each module that comprises ArjunaTA possesses a class called Info. These "
+"classes all provide a single toString method that returns an XML document "
+"representing the configuration information for that module. So, for example:"
+msgstr ""
+"ArjunaTA を構成する各モジュールはクラス呼び出し情報を持っています。 これらの"
+"クラスはすべてそのモジュールに関する設定情報を表している XML ドキュメントを返"
+"す単一 toString メソッドを提供します。 たとえば、"
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:48
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:52
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "障害リカバリに関する管理"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:53
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA will ensure that results of a "
+"transaction are applied consistently to all resources affected by the "
+"transaction, even if any of the application processes or the machine hosting "
+"them crash or lose network connectivity. In the case of machine (system) "
+"crash or network failure, the recovery will not take place until the system "
+"or network are restored, but the original application does not need to be "
+"restarted – recovery responsibility is delegated to the Recovery Manager "
+"process (see below). Recovery after failure requires that information about "
+"the transaction and the resources involved survives the failure and is "
+"accessible afterward: this information is held in the ActionStore, which is "
+"part of the ObjectStore."
+msgstr ""
+"アプリケーションプロセスのいずれかあるいはそのプロセスをホストしているマシン"
+"がクラッシュしたりネットワーク接続性をなくした場合であっても、 ArjunaTA の障"
+"害リカバリサブシステムはトランザクションの結果が常にトランザクションによって"
+"影響を受ける全リソースに対して適用されるようにします。 マシン (システム) がク"
+"ラッシュしたりネットワーク障害が発生した場合、 リカバリはシステムまたはネット"
+"ワークが回復されるまで行われませんが、 オリジナルのアプリケーションを再起動す"
+"る必要はありません。 リカバリの役割はリカバリマネージャのプロセスに委任されま"
+"す (以下を参照)。 傷害後のリカバリはトランザクションおよびリソース関連の情報"
+"が障害による破損を逃れアクセス可能であることが必要となります。 この情報は "
+"ObjectStore の一部となる ActionStore に維持されます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:57
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+"ObjectStore が破棄または修正された場合、 リカバリは不可能となる場合性がありま"
+"す。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:61
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects "
+"for Java resources, an attempt to activate the Transactional Object (as when "
+"trying to get a lock) will fail."
+msgstr ""
+"リカバリの手順が完了するまで、 障害発生時に進行中であったトランザクションによ"
+"り影響を受けるリソースはアクセスできないかもしれません。 データベースリソース"
+"の場合、 <emphasis>不審なトランザクション</emphasis> により維持される表または"
+"列でレポートされる場合があります。 Java リソース用のトランザクション的オブ"
+"ジェクトの場合は、トランザクション的オブジェクトをアクティブにする試行 (ロッ"
+"クの取得時) が失敗します。"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:65
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "リカバリマネージャ"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:66
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA requires that the stand-alone "
+"Recovery Manager process be running for each ObjectStore (typically one for "
+"each node on the network that is running ArjunaTA applications). The "
+"<filename>RecoveryManager</filename> file is located in the "
+"<filename>arjunacore</filename> jar file within the package <package>com."
+"arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery "
+"Manager issue the following command:"
+msgstr ""
+"ArjunaTA の障害リカバリサブシステムは各 ObjectStore に対してスタンドアローン"
+"のリカバリマネージャのプロセスが実行している必要があります (一般的に "
+"ArjunaTA アプリケーションを実行しているネットワーク上の各ノードに対して 1 "
+"つ)。 <filename>RecoveryManager</filename> ファイルは <package>com.arjuna."
+"ats.arjuna.recovery.RecoveryManager</package> パッケージ内の "
+"<filename>arjunacore</filename> jar ファイルにあります。 リカバリマネージャを"
+"起動するには次のコマンドを発行します。"
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:70
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:71
+#, no-c-format
+msgid ""
+"If the -test flag is used with the Recovery Manager then it will display a "
+"<emphasis>Ready</emphasis> message when initialised, for instance:"
+msgstr ""
+"リカバリマネージャで -test フラグが使用されると初期化される場合に "
+"<emphasis>Ready</emphasis> メッセージを表示するようになります。 たとえば、"
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:74
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:76
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "リカバリマネージャを設定する"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:77
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the arjuna.properties "
+"file and then also reads the property file RecoveryManager.properties, from "
+"the same directory as it found the arjuna properties file. An entry for a "
+"property in the RecoveryManager properties file will override an entry for "
+"the same property in the main TransactionService properties file. Most of "
+"the entries are specific to the Recovery Manager."
+msgstr ""
+"RecoveryManager は arjuna プロパティファイルがある同じディレクトリから、 "
+"arjuna.properties ファイル内に定義されるプロパティ、 また RecoveryManager."
+"properties プロパティファイルも読み込みます。 RecoveryManager プロパティファ"
+"イル内のプロパティのエントリはメインの TransactionService プロパティファイル"
+"にある同じプロパティのエントリを上書きします。 ほとんどのエントリはリカバリマ"
+"ネージャ固有となります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:81
+#, no-c-format
+msgid ""
+"A default version of RecoveryManager.properties is supplied with the "
+"distribution – this can be used without modification, except possibly the "
+"debug tracing fields (see below, Output). The rest of this section discusses "
+"the issues relevant in setting the properties to other values (in the order "
+"of their appearance in the default version of the file)."
+msgstr ""
+"RecoveryManager.properties のデフォルトバージョンがディストリビューションに同"
+"梱されます。 恐らくデバッグトレーシングのフィールド以外は修正なしで使用できま"
+"す (以下の「Output」を参照)。 これからは、 プロパティを他の値に設定する場合に"
+"発生する問題について説明していきます (ファイルのデフォルトバージョンに出現す"
+"る順序)。"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:85
+#, no-c-format
+msgid "Output"
+msgstr "Output"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:86
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"どのようなリカバリアクティビティが行われたのかに関する記録を提供するため、 イ"
+"ンストールにより RecoveryManager からなんらかの出力を要求される可能性がありま"
+"す。 RecoveryManager は Arjuna Common Logging Framework (CLF) により提供され"
+"るログ記録の追跡メカニズムを使用します。 Jakarta log4j や JDK 1.4 logging "
+"API など既存のログ記録 API 間の違いを隠す高レベルのインターフェースを提供しま"
+"す。 CLF はすべてのログ記録を Apache Commons Logging フレームワークでインダイ"
+"レクトするため、 設定はそのフレームワークで発生するとみなされます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:90
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"CLF では、 アプリケーションはロッガーオブジェクトでログ記録のコールを行いま"
+"す。 ロッガーはログ記録のレベルを使用して特定のログメッセージに関心があるかど"
+"うかを判断します。 各ログメッセージには関連づけられたログレベルがあり、 これ"
+"によりログメッセージの重要性や緊急度が与えられます。 設定可能なログレベルは "
+"DEBUG、 INFO、 WARN、 ERROR、 FATAL になります。 定義されるレベルは次のように"
+"整数値に応じて並べられます。  DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:93
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"CLF はアプリケーションによって定義される精度に応じてログ記録メッセージのフィ"
+"ルター拡張を提供します。 ログメッセージが DEBUG レベルでロッガーに提供される"
+"と、 ログメッセージが有効であるかどうかを判定する追加条件を指定することができ"
+"ます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:97
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+"この条件は、 DEBUG レベルが有効でアプリケーションにより実行されるログ要求がデ"
+"バッグの精度を指定する場合にのみ適用されます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:101
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "有効にすると、 Debugging は 3 つの変数で条件的にフィルターされます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:106
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, for example, constructors or basic methods."
+msgstr ""
+"Debugging レベル: DEBUG レベルが付いたログ要求がたとえばコンストラクタや基本"
+"のメソッドから生成される"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:111
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+"Visibility レベル: コンストラクタ、 メソッドなどの可視性で、 デバッグを生成す"
+"ã‚‹"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:116
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, for example, the object store."
+msgstr ""
+"Facility レベル: デバッグが生成されるたとえばオブジェクトストア内のパッケージ"
+"やサブモジュール"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:121
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. ArjunaTA uses the default Debugging level and the default "
+"Visibility level provided by CLF, but it defines its own Facility Code. "
+"ArjunaTA uses the default level assigned to its logger objects (DEBUG). "
+"However, it uses the finer debugging features to disable or enable debug "
+"messages. Finer debugging values used by the ArjunaTA are defined below:"
+msgstr ""
+"これらの変数に応じて、 CLF は 3 つのインターフェースを定義します。 特定のプロ"
+"ダクトはそれ自体の精度に応じてそれ自体のクラスを実装する場合があります。 "
+"ArjunaTA は CLF により提供されるデフォルトの Debugging レベルとデフォルトの "
+"Visibility レベルを使用しますが、 Facility コードはそれ自体のものを定義しま"
+"す。 ArjunaTA はそのロッガーオブジェクトに割り当てられるデフォルトのレベルを"
+"使用します(DEBUG)。 ただし、 メッセージのデバッグの有効、 無効の切り替えには"
+"より精度の高いデバッグ機能を使用します。 ArjunaTA で使用される精度の高いデ"
+"バッグ用の値は次の通りです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:124
+#, no-c-format
+msgid ""
+"Debugging level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+"Debugging レベル – ArjunaTA は <classname>com.arjuna.common.util.logging."
+"DebugLevel</classname> クラスで定義されるデフォルト値を使用します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:129
+#, no-c-format
+msgid "NO_DEBUGGING: No diagnostics."
+msgstr "NO_DEBUGGING: 診断なしです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:132
+#, no-c-format
+msgid "A logger object assigned with this values discard all debug requests"
+msgstr ""
+"この値を付けて割り当てられるロッガーオブジェクトはすべてのデバッグ要求を破棄"
+"します"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:137
+#, no-c-format
+msgid "FULL_DEBUGGING: Full diagnostics."
+msgstr "FULL_DEBUGGING: 完全診断です"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:140
+#, no-c-format
+msgid ""
+"A Logger object assigned with this value allows all debug requests if the "
+"facility code and the visibility level match those allowed by the logger."
+msgstr ""
+"この値を付けて割り当てられるロッガーオブジェクトは、 facility コードおよび "
+"visibility レベルがロッガーにより許可されているものと一致する場合に全デバッグ"
+"要求を許可します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:145
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "その他の Debugging 値は以下の通りです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:150
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: コンストラクタからの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:155
+#, no-c-format
+msgid "DESTRUCTORS: Diagnostics from finalizers."
+msgstr "DESTRUCTORS: ファイナライザーからの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:160
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: コンストラクタとファイナライザからの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:165
+#, no-c-format
+msgid "FUNCTIONS: Diagnostics from functions."
+msgstr "FUNCTIONS: 関数からの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:170
+#, no-c-format
+msgid "OPERATORS: Diagnostics from operators, such as equals."
+msgstr "OPERATORS: equal などの演算子からの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:175
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: 関数と演算子からの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:180
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: 非 trivial の全オペレーションからの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:185
+#, no-c-format
+msgid "TRIVIAL_FUNCS: Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS: trivial 関数からの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:190
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: trivial オペレーションおよび演算子からの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:195
+#, no-c-format
+msgid "ALL_TRIVIAL: Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL: 全 trivial オペレーションからの診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:200
+#, no-c-format
+msgid ""
+"Visibility level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+"Visibility レベル – ArjunaTA は <classname>com.arjuna.common.util.logging."
+"VisibilityLevel</classname> クラスで定義されるデフォルトの値を使用します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:205
+#, no-c-format
+msgid "VIS_NONE: No Diagnostic"
+msgstr "VIS_NONE: 診断なし"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:210
+#, no-c-format
+msgid "VIS_PRIVATE: Only from private methods."
+msgstr "VIS_PRIVATE: プライベートメソッドからのみです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:215
+#, no-c-format
+msgid "VIS_PROTECTED: Only from protected methods."
+msgstr "VIS_PROTECTED: 保護メソッドからのみです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:220
+#, no-c-format
+msgid "VIS_PUBLIC: Only from public methods."
+msgstr "VIS_PUBLIC: パブリックメソッドからのみです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:225
+#, fuzzy, no-c-format
+msgid "VIS_PACKAGE: only from package methods."
+msgstr "VIS_PRIVATE: プライベートメソッドからのみです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:230
+#, no-c-format
+msgid "VIS_ALL: Full Diagnostic ."
+msgstr "VIS_ALL: 完全診断です。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:235
+#, no-c-format
+msgid ""
+"Facility Code – ArjunaTA uses the following values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+"Facility コード – ArjunaTA は <classname>com.arjuna.common.util.logging."
+"VisibilityLevel</classname> クラスで定義される次の値を使用します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:240
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (アトミックアクションコアモジュール)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:245
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (状態管理 (バッファ) クラス)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:250
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (抽象記録)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:255
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (オブジェクトストアの実装)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:260
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (状態管理および StateManager)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:265
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (共有メモリ実装クラス)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:270
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (汎用クラス)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:275
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (クラッシュリカバリモジュールおよびクラスの詳"
+"細なトレース)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:280
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (スレッドクラス)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:285
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 および 2.0 サポート)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:290
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (クラッシュリカバリマネージャの通常出力)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:295
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the ArjunaTA module."
+msgstr ""
+"適切な出力を確保するため、 <filename>CommonLogging.xml</filename> ファイルで"
+"明示的に細かなデバッグプロパティをいくつかセットして ArjunaTA モジュールによ"
+"りログ記録メッセージを発行されるようにする必要があります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:298
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the <filename>CommonLogging.xml</filename>, "
+"enables all debug messages related to the Crash Recovery protocol and issued "
+"by the ArjunaTA module."
+msgstr ""
+"RecoveryManager によって行われるその起動と定期的な動作を表しているメッセージ"
+"は INFO レベルを使用する出力になります。 他のデバッグトレースが必要な場合"
+"は、 応じてより精度の高いデバッグレベルを設定する必要があります。 たとえば、 "
+"次の設定では <filename>CommonLogging.xml</filename> でクラッシュリカバリプロ"
+"トコルに関連し ArjunaTA モジュールにより発行されるデバッグメッセージはすべて"
+"有効にしています。"
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:301
+#, no-c-format
+msgid ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:303
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+"ロッガーオブジェクトが 2 つ提供され、 最初のオブジェクトが I18N メッセージを"
+"管理しもうひとつは行いません。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:307
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+"通常のリカバリメッセージを INFO レベルに設定すると RecoveryManager が適度なレ"
+"ベルのレポートを生成できるようになります。 何も起こってない場合は定期的なパス"
+"それぞれに対する各モジュールへのエントリをレポートするだけになります。 リカバ"
+"リマネージャにより生成される INFO メッセージを無効にするには、 ログ記録レベル"
+"を最高レベルの ERROR に設定します。 レベルを ERROR 設定するということは、 "
+"RecoveryManager は error、 warning、 fatal のいずれかのメッセージしか生成しな"
+"くなるということです。"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:311
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "定期的なリカバリ"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:312
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"RecoveryManager は ObjectStore および他の情報の場所をスキャンしてリカバリを必"
+"要とするあるいは必要とする可能性があるトランザクションやリソースをさがしま"
+"す。 このスキャンとリカバリのプロセスは、 トランザクションやリソースの特定カ"
+"テゴリに対してそれぞれ処理を行うリカバリモジュール (com.arjuna.ats.arjuna."
+"recovery.RecoveryModule インターフェースを実装するクラスのインスタンス) に"
+"よって行われます。 使用されるリカバリモジュール一式は動的にロードされ、 "
+"RecoveryManager プロパティファイルにあるプロパティを使用します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:316
+#, no-c-format
+msgid ""
+"The interface has two methods: <methodname>periodicWorkFirstPass</"
+"methodname> and <methodname>periodicWorkSecondPass</methodname>. At an "
+"interval (defined by property <property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property>), the RecoveryManager will call the first "
+"pass method on each property, then wait for a brief period (defined by "
+"property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</"
+"property>), then call the second pass of each module. Typically, in the "
+"first pass, the module scans (e.g. the relevant part of the ObjectStore) to "
+"find transactions or resources that are in-doubt (i.e. are part way through "
+"the commitment process). On the second pass, if any of the same items are "
+"still in-doubt, it is possible the original application process has crashed "
+"and the item is a candidate for recovery."
+msgstr ""
+"インターフェースには <methodname>periodicWorkFirstPass</methodname> と "
+"<methodname>periodicWorkSecondPass</methodname> の 2 つのメソッドがありま"
+"す。 一定の間隔 (<property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property> プロパティで定義される) で、 "
+"RecoveryManager は 1 番目のパスメソッドを各プロパティで呼び出し、 少しの間 "
+"(<property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</property> プ"
+"ロパティで定義される) 待機してから各モジュールの 2 番目のパスを呼び出しま"
+"す。 一般的には、 1 番目のパスでモジュールは不審なトランザクションやリソース "
+"(コミットのプロセスが途中など) を見つけるためスキャンを行います (ObjectStore "
+"の関連部分)。 2 番目のパスで、 同じアイテムのいずれかが未だに不審となる場"
+"合、 オリジナルのアプリケーションプロセスがクラッシュしているためそのアイテム"
+"がリカバリの候補となる可能性があります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:319
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> "
+"package) to check to see if the original process is still alive, and if the "
+"transaction is still in progress. The RecoveryManager only proceeds with "
+"recovery if the original process has gone, or, if still alive, the "
+"transaction is completed. (If a server process or machine crashes, but the "
+"transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"オリジナルのプロセスでまだ進行中のトランザクションを RecoveryManager によって"
+"リカバリしようとすると整合性が損なわれる可能性があります。 したがって、 リカ"
+"バリモジュールはオリジナルプロセスがまだ生きているかどうか、 またそのトランザ"
+"クションがまだ進行中であるかどうか確認するためのメカニズム (<package>com."
+"arjuna.ats.arjuna.recovery.TransactionStatusManager</package> パッケージに実"
+"装される) を使用します。 RecoveryManager はオリジナルのプロセスがなくなってい"
+"る場合、 あるいはまだ生きているときはトランザクションが完了している場合にのみ"
+"リカバリを開始します。 (サーバーのプロセスまたはマシンはクラッシュしている"
+"が、 トランザクション開始のプロセスは生き残っている場合、 トランザクションが"
+"終了され通常は警告を生成します。 こうしたトランザクションのリカバリが "
+"RecoveryManager の役割となります。)"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:322
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the periodicRecoveryPeriod, "
+"recoveryBackoffPeriod and the length of time it takes to scan the stores and "
+"to attempt recovery of any in-doubt transactions found, for all the recovery "
+"modules. The recovery attempt time may include connection timeouts while "
+"trying to communicate with processes or machines that have crashed or are "
+"inaccessible (which is why there are mechanisms in the recovery system to "
+"avoid trying to recover the same transaction for ever). The total iteration "
+"time will affect how long a resource will remain inaccessible after a "
+"failure – periodicRecoveryPeriod should be set accordingly (default is 120 "
+"seconds). The recoveryBackoffPeriod can be comparatively short (default is "
+"10 seconds) – its purpose is mainly to reduce the number of transactions "
+"that are candidates for recovery and which thus require a call to the "
+"original process to see if they are still in progress."
+msgstr ""
+"間隔の長さを適切に設定することが明らかに重要となります。 反復合計時間は "
+"periodicRecoveryPeriod の時間、 recoveryBackoffPeriod の時間および全リカバリ"
+"モジュールがストアをスキャンして発見された不審なトランザクションのリカバリ試"
+"行を行うためにかかる時間長の合計になります。 リカバリ試行時間にはクラッシュし"
+"ているあるいはアクセス不能となっているプロセスやマシンと通信試行している間の"
+"接続タイムアウトが含まれる場合もあります (同じトランザクションのリカバリ試行"
+"を回避するためリカバリシステムにメカニズムが存在するのはこのためです)。 反復"
+"合計時間は障害後にリソースがアクセス不能の状態となっている時間に影響するた"
+"め、 periodicRecoveryPeriod を設定する必要があります (デフォルトは 120 秒)。 "
+"recoveryBackoffPeriod は比較的短くて構いません (デフォルトは 10 秒)。 トラン"
+"ザクションのリカバリはいまだ進行中であるかどうかの確認にオリジナルのプロセス"
+"へのコールを必要とするのでこのリカバリの候補数を減らすことがその主な目的とな"
+"るためです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:326
+#, no-c-format
+msgid ""
+"In previous versions of ArjunaCore there was no contact mechanism, and the "
+"backoff period had to be long enough to avoid catching transactions in "
+"flight at all. From 3.0, there is no such risk."
+msgstr ""
+"ArjunaCore の旧バージョンでは、 コンタクトメカニズムがなかったため進行中のト"
+"ランザクションを取得しないよう十分な時間が backoff に必要でした。 3.0 からは"
+"このようなリスクがなくなります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:330
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with "
+"ArjunaTA, supporting various aspects of transaction recovery including JDBC "
+"recovery. It is possible for advanced users to create their own recovery "
+"modules and register them with the Recovery Manager. The recovery modules "
+"are registered with the RecoveryManager using properties that begin with "
+"<property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These "
+"will be invoked on each pass of the periodic recovery in the sort-order of "
+"the property names – it is thus possible to predict the ordering (but note "
+"that a failure in an application process might occur while a periodic "
+"recovery pass is in progress). The default Recovery Extension settings are:"
+msgstr ""
+"ArjunaTA にはリカバリモジュールが 2 種類 (<interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> インターフェースの実装) 同梱さ"
+"れ、 JDBC リカバリなど各種のトランザクションリカバリに対応しています。 上級"
+"ユーザーなら独自のリカバリモジュールを作成してリカバリマネージャに登録するこ"
+"とが可能です。 リカバリモジュールは <property>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</property> で始まるプロパティを使い RecoveryManager で登録"
+"されます。 これらはプロパティ名のソート順で各定期リカバリのパスで呼び出されま"
+"す。 したがってその順序を予測することが可能です (ただし、 アプリケーションプ"
+"ロセスにおける障害は定期リカバリパスの進行中に発生する可能性があるため注意が"
+"必要)。 デフォルトのリカバリ拡張の設定は次の通りです。"
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:333
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:335
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "失効エントリの削除"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:336
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</"
+"interfacename> interface. Implementations of this interface are loaded by "
+"giving the class name as the value of a property whose name begins with "
+"<property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The "
+"RecoveryManager calls the <methodname>scan()</methodname> method on each "
+"loaded Expiry Scanner implementation at an interval determined by the "
+"property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"property>. This value is given in hours – default is 12. An "
+"expiryScanInterval value of zero will suppress any expiry scanning. If the "
+"value as supplied is positive, the first scan is performed when "
+"RecoveryManager starts; if the value is negative, the first scan is delayed "
+"until after the first interval (using the absolute value)"
+msgstr ""
+"リカバリサブシステムの動作により ObjectStore 内で通常では削除されないいくつか"
+"のエントリが作成されることになります。 RecoveryManager にはこれらをスキャンし"
+"て古いアイテムを削除する機能があります。 スキャンと削除は <interfacename>com."
+"arjuna.ats.arjuna.recovery.ExpiryScanner</interfacename> インターフェースの実"
+"装で行われます。 このインターフェースの実装は <property>com.arjuna.ats."
+"arjuna.recovery.expiryScanner</property> で始まる名前のプロパティの値としてク"
+"ラス名を与えることでロードされます。 RecoveryManager は <property>com.arjuna."
+"ats.arjuna.recovery.expiryScanInterval</property> プロパティで確定される間隔"
+"でロードされている各 Expiry Scanner 実装で <methodname>scan()</methodname> メ"
+"ソッドを呼び出します。 この値は時間単位で与えられ、 デフォルトは 12 です。 "
+"expiryScanInterval 値が 0 の場合は失効のスキャンを抑制することになります。 与"
+"えられた値が正数なら、 最初のスキャンは RecoveryManager の起動時に行われま"
+"す。 値が負数なら、 最初のスキャンは最初の間隔まで遅延されます (絶対値を使"
+"用)。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:340
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "失効のスキャンが行われるアイテムの種類は次の通りです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:343
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses ArjunaCore – they contain the information that "
+"allows the RecoveryManager to determine if the process that initiated the "
+"transaction is still alive, and what the transaction status is. The expiry "
+"time for these is set by the property <property>com.arjuna.ats.arjuna."
+"recovery.transactionStatusManagerExpiryTime</property> (in hours – default "
+"is 12, zero means never expire). The expiry time should be greater than the "
+"lifetime of any single ArjunaTA-using process."
+msgstr ""
+"TransactionStatusManager アイテム: これらのうちのひとつが ArjunaCore を使用す"
+"るアプリケーションプロセスごとに作成されます。 RecoveryManager によりトランザ"
+"クションを初期化したプロセスがまだ生きているかどうか、 またトランザクションの"
+"ステータスが何であるかを確定できるようにします。 これらの失効時間は "
+"<property>com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime</"
+"property> プロパティで設定されます (時間単位、 デフォルトは 12、 0 の場合は失"
+"効無し)。 失効時間は ArjunaTA 使用の 1 プロセスの寿命より大きくなければなりま"
+"せん。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:346
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "これらの失効スキャナプロパティは以下の通りです。"
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:349
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:353
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "エラーと例外"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:354
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+"本セクションではトランザクション的アプリケーションで報告されたり送出される可"
+"能性がある例外およびエラーの種類について説明し、 その原因として推測される兆候"
+"を示します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:359
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running "
+"the garbage collector) before re-throwing the exception. This is probably a "
+"transient problem and retrying the invocation should succeed."
+msgstr ""
+"NO_MEMORY: アプリケーションにメモリ不足が発生し、 ArjunaTA が例外を再送出する"
+"前になんらかのクリーンアップを試行しています (ガーベッジコレクションの実"
+"行)。 おそらく、 これは一時的な問題となるため呼び出しを再試行すると成功するは"
+"ずです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:364
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: トランザクションシステムをシャッ"
+"トダウンしなければならないエラーが発生しています。 このエラーが送出される前"
+"に、 トランザクションサービスは必ず実行中のトランザクションがすべてロールバッ"
+"クしていることを確認します。 発生した場合は、 アプリケーションを整理して終了"
+"してください。 さらに作業が試行される場合、 アプリケーションの整合性が侵害さ"
+"れている可能性があります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:369
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: 現在のライセンスと整合性のない"
+"方法でトランザクションサービスを使用しようとする試行が行われています。 トラン"
+"ザクションサービスは既存または新しいトランザクションのこれ以上の進行を許可し"
+"なくなります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:374
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: トランザクションサービスが"
+"オブジェクトストアを使用しようとしてエラーが発生しました。 これ以上の進行は不"
+"可能となります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:379
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+"状態でのアクセス問題に関するオブジェクトストアの警告はクラッシュリカバリの通"
+"常の実行中に発生する場合があります。 これは同じトランザクションでリカバリを同"
+"時に複数試行したために起こります。 無視しても安全です。"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:387
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "JTA 実装を選択する"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:388
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+"2 種類の JTA 実装が提供されるようになり、 同じインターフェースからアクセスで"
+"きます。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:393
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the ArjunaTA product."
+msgstr ""
+"純粋にローカルな JTA です。 非分散の JTA トランザクション実行しか許可しませ"
+"ん。 ArjunaTA プロダクトで使用可能となるのはこのバージョンのみです。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:398
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+"リモートの CORBA ベースの JTA です。 分散 JTA トランザクションの実行を許可し"
+"ます。 このバージョンは ArjunaJTS プロダクトでのみ使用可能で、 サポートされ"
+"た CORBA ORB を必要とします。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:404
+#, no-c-format
+msgid ""
+"Both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with ArjunaTA."
+msgstr ""
+"これらの実装はいずれも ArjunaTA で提供されるトランザクション的 JDBC ドライバ"
+"と完全互換となります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:408
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "ローカルの JTA 実装を選択するためには、 次の手順を行う必要があります。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:413
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code>."
+msgstr ""
+"<property>com.arjuna.ats.jta.jtaTMImplementation</property> プロパティが "
+"<code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code> にセットされていることを確認します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:418
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code>."
+msgstr ""
+"<property>com.arjuna.ats.jta.jtaUTImplementation</property> プロパティが "
+"<code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code> にセットされていることを確認します。"
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:424
+#, no-c-format
+msgid ""
+"These settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""
+"これらの設定はプロパティのデフォルト値となるため、 ローカルの実装が要される場"
+"合は指定する必要はありません。"
+
+#~ msgid ""
+#~ "VIS_JBoss_Transactions_JTA_Administration_Guide: only from package "
+#~ "methods."
+#~ msgstr ""
+#~ "VIS_JBoss_Transactions_JTA_Administration_Guide: パッケージメソッドからの"
+#~ "みです。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_JTA_Administration_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:03+0000\n"
+"PO-Revision-Date: 2008-09-19 10:42+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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 "Red Hat Documentation Group"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,48 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_JTA_Administration_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:03+0000\n"
+"PO-Revision-Date: 2008-09-19 10:44+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Administration Guide"
+msgstr "JBoss トランザクション JTA 管理ガイド"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr "JBoss Enterprise Application Platform 4.3 ユーザー向け"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the administration of Arjuna TA"
+msgstr "本ガイドは Arjuna TA の管理に関して記載されています。"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "ロゴ"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/JBoss_Transactions_JTA_Administration_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_JTA_Administration_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:03+0000\n"
+"PO-Revision-Date: 2008-09-19 10:44+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "前書き"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_JTA_Administration_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-17 04:03+0000\n"
+"PO-Revision-Date: 2008-09-19 10:45+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname>(Japanese translation - Noriko Mizumoto)</surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Administration_of_ArjunaTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Administration_of_ArjunaTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Administration_of_ArjunaTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,932 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:6
+#, no-c-format
+msgid "Administration of ArjunaTA"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:9
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the <firstterm>ArjunaTA</"
+"firstterm> software. There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:14
+#, no-c-format
+msgid ""
+"The present implementation of the ArjunaTA system provides no security or "
+"protection for data. The objects stored in the ArjunaTA object store are "
+"(typically) owned by the user who ran the application that created them. The "
+"Object Store and Object Manager facilities make no attempt to enforce even "
+"the limited form of protection that Unix/Windows provides. There is no "
+"checking of user or group IDs on access to objects for either reading or "
+"writing."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:19
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"<methodname>StateManager.destroy</methodname> method is invoked on the "
+"object or some application program explicitly deletes them. This means that "
+"the Object Store gradually accumulates garbage (especially during "
+"application development and testing phases). At present we have no automated "
+"garbage collection facility. Further, we have not addressed the problem of "
+"dangling references. That is, a persistent object, A, may have stored a Uid "
+"for another persistent object, B, in its passive representation on disk. "
+"There is nothing to prevent an application from deleting B even though A "
+"still contains a reference to it. When A is next activated and attempts to "
+"access B, a run-time error will occur."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:24
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The ArjunaTA software can neither "
+"detect nor correct references to old object state by new operation versions "
+"or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:29
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:37
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:38
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:44
+#, no-c-format
+msgid "ArjunaTA runtime information"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:45
+#, no-c-format
+msgid ""
+"Each module that comprises ArjunaTA possesses a class called Info. These "
+"classes all provide a single toString method that returns an XML document "
+"representing the configuration information for that module. So, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:48
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:52
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:53
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA will ensure that results of a "
+"transaction are applied consistently to all resources affected by the "
+"transaction, even if any of the application processes or the machine hosting "
+"them crash or lose network connectivity. In the case of machine (system) "
+"crash or network failure, the recovery will not take place until the system "
+"or network are restored, but the original application does not need to be "
+"restarted – recovery responsibility is delegated to the Recovery Manager "
+"process (see below). Recovery after failure requires that information about "
+"the transaction and the resources involved survives the failure and is "
+"accessible afterward: this information is held in the ActionStore, which is "
+"part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:57
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:61
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects "
+"for Java resources, an attempt to activate the Transactional Object (as when "
+"trying to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:65
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:66
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA requires that the stand-alone "
+"Recovery Manager process be running for each ObjectStore (typically one for "
+"each node on the network that is running ArjunaTA applications). The "
+"<filename>RecoveryManager</filename> file is located in the "
+"<filename>arjunacore</filename> jar file within the package <package>com."
+"arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery "
+"Manager issue the following command:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:70
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:71
+#, no-c-format
+msgid ""
+"If the -test flag is used with the Recovery Manager then it will display a "
+"<emphasis>Ready</emphasis> message when initialised, for instance:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:74
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:76
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:77
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the arjuna.properties "
+"file and then also reads the property file RecoveryManager.properties, from "
+"the same directory as it found the arjuna properties file. An entry for a "
+"property in the RecoveryManager properties file will override an entry for "
+"the same property in the main TransactionService properties file. Most of "
+"the entries are specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:81
+#, no-c-format
+msgid ""
+"A default version of RecoveryManager.properties is supplied with the "
+"distribution – this can be used without modification, except possibly the "
+"debug tracing fields (see below, Output). The rest of this section discusses "
+"the issues relevant in setting the properties to other values (in the order "
+"of their appearance in the default version of the file)."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:85
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:86
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:90
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:93
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:97
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:101
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:106
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, for example, constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:111
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:116
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, for example, the object store."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:121
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. ArjunaTA uses the default Debugging level and the default "
+"Visibility level provided by CLF, but it defines its own Facility Code. "
+"ArjunaTA uses the default level assigned to its logger objects (DEBUG). "
+"However, it uses the finer debugging features to disable or enable debug "
+"messages. Finer debugging values used by the ArjunaTA are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:124
+#, no-c-format
+msgid ""
+"Debugging level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:129
+#, no-c-format
+msgid "NO_DEBUGGING: No diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:132
+#, no-c-format
+msgid "A logger object assigned with this values discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:137
+#, no-c-format
+msgid "FULL_DEBUGGING: Full diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:140
+#, no-c-format
+msgid ""
+"A Logger object assigned with this value allows all debug requests if the "
+"facility code and the visibility level match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:145
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:150
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:155
+#, no-c-format
+msgid "DESTRUCTORS: Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:160
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:165
+#, no-c-format
+msgid "FUNCTIONS: Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:170
+#, no-c-format
+msgid "OPERATORS: Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:175
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:180
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:185
+#, no-c-format
+msgid "TRIVIAL_FUNCS: Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:190
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:195
+#, no-c-format
+msgid "ALL_TRIVIAL: Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:200
+#, no-c-format
+msgid ""
+"Visibility level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:205
+#, no-c-format
+msgid "VIS_NONE: No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:210
+#, no-c-format
+msgid "VIS_PRIVATE: Only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:215
+#, no-c-format
+msgid "VIS_PROTECTED: Only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:220
+#, no-c-format
+msgid "VIS_PUBLIC: Only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:225
+#, no-c-format
+msgid "VIS_: only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:230
+#, no-c-format
+msgid "VIS_ALL: Full Diagnostic ."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:235
+#, no-c-format
+msgid ""
+"Facility Code – ArjunaTA uses the following values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:240
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:245
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:250
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:255
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:260
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:265
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:270
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:275
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:280
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:285
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:290
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:295
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the ArjunaTA module."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:298
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the <filename>CommonLogging.xml</filename>, "
+"enables all debug messages related to the Crash Recovery protocol and issued "
+"by the ArjunaTA module."
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:301
+#, no-c-format
+msgid ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:303
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:307
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:311
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:312
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:316
+#, no-c-format
+msgid ""
+"The interface has two methods: <methodname>periodicWorkFirstPass</"
+"methodname> and <methodname>periodicWorkSecondPass</methodname>. At an "
+"interval (defined by property <property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property>), the RecoveryManager will call the first "
+"pass method on each property, then wait for a brief period (defined by "
+"property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</"
+"property>), then call the second pass of each module. Typically, in the "
+"first pass, the module scans (e.g. the relevant part of the ObjectStore) to "
+"find transactions or resources that are in-doubt (i.e. are part way through "
+"the commitment process). On the second pass, if any of the same items are "
+"still in-doubt, it is possible the original application process has crashed "
+"and the item is a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:319
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> "
+"package) to check to see if the original process is still alive, and if the "
+"transaction is still in progress. The RecoveryManager only proceeds with "
+"recovery if the original process has gone, or, if still alive, the "
+"transaction is completed. (If a server process or machine crashes, but the "
+"transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:322
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the periodicRecoveryPeriod, "
+"recoveryBackoffPeriod and the length of time it takes to scan the stores and "
+"to attempt recovery of any in-doubt transactions found, for all the recovery "
+"modules. The recovery attempt time may include connection timeouts while "
+"trying to communicate with processes or machines that have crashed or are "
+"inaccessible (which is why there are mechanisms in the recovery system to "
+"avoid trying to recover the same transaction for ever). The total iteration "
+"time will affect how long a resource will remain inaccessible after a "
+"failure – periodicRecoveryPeriod should be set accordingly (default is 120 "
+"seconds). The recoveryBackoffPeriod can be comparatively short (default is "
+"10 seconds) – its purpose is mainly to reduce the number of transactions "
+"that are candidates for recovery and which thus require a call to the "
+"original process to see if they are still in progress."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:326
+#, no-c-format
+msgid ""
+"In previous versions of ArjunaCore there was no contact mechanism, and the "
+"backoff period had to be long enough to avoid catching transactions in "
+"flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:330
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with "
+"ArjunaTA, supporting various aspects of transaction recovery including JDBC "
+"recovery. It is possible for advanced users to create their own recovery "
+"modules and register them with the Recovery Manager. The recovery modules "
+"are registered with the RecoveryManager using properties that begin with "
+"<property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These "
+"will be invoked on each pass of the periodic recovery in the sort-order of "
+"the property names – it is thus possible to predict the ordering (but note "
+"that a failure in an application process might occur while a periodic "
+"recovery pass is in progress). The default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:333
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:335
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:336
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</"
+"interfacename> interface. Implementations of this interface are loaded by "
+"giving the class name as the value of a property whose name begins with "
+"<property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The "
+"RecoveryManager calls the <methodname>scan()</methodname> method on each "
+"loaded Expiry Scanner implementation at an interval determined by the "
+"property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"property>. This value is given in hours – default is 12. An "
+"expiryScanInterval value of zero will suppress any expiry scanning. If the "
+"value as supplied is positive, the first scan is performed when "
+"RecoveryManager starts; if the value is negative, the first scan is delayed "
+"until after the first interval (using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:340
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:343
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses ArjunaCore – they contain the information that "
+"allows the RecoveryManager to determine if the process that initiated the "
+"transaction is still alive, and what the transaction status is. The expiry "
+"time for these is set by the property <property>com.arjuna.ats.arjuna."
+"recovery.transactionStatusManagerExpiryTime</property> (in hours – default "
+"is 12, zero means never expire). The expiry time should be greater than the "
+"lifetime of any single ArjunaTA-using process."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:346
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:349
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:353
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:354
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:359
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running "
+"the garbage collector) before re-throwing the exception. This is probably a "
+"transient problem and retrying the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:364
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:369
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:374
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:379
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:387
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:388
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:393
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the ArjunaTA product."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:398
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:404
+#, no-c-format
+msgid ""
+"Both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with ArjunaTA."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:408
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:413
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:418
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:424
+#, no-c-format
+msgid ""
+"These settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the administration of Arjuna TA"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/JBoss_Transactions_JTA_Administration_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Administration_of_ArjunaTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Administration_of_ArjunaTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Administration_of_ArjunaTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,932 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:6
+#, no-c-format
+msgid "Administration of ArjunaTA"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:9
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the <firstterm>ArjunaTA</"
+"firstterm> software. There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:14
+#, no-c-format
+msgid ""
+"The present implementation of the ArjunaTA system provides no security or "
+"protection for data. The objects stored in the ArjunaTA object store are "
+"(typically) owned by the user who ran the application that created them. The "
+"Object Store and Object Manager facilities make no attempt to enforce even "
+"the limited form of protection that Unix/Windows provides. There is no "
+"checking of user or group IDs on access to objects for either reading or "
+"writing."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:19
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"<methodname>StateManager.destroy</methodname> method is invoked on the "
+"object or some application program explicitly deletes them. This means that "
+"the Object Store gradually accumulates garbage (especially during "
+"application development and testing phases). At present we have no automated "
+"garbage collection facility. Further, we have not addressed the problem of "
+"dangling references. That is, a persistent object, A, may have stored a Uid "
+"for another persistent object, B, in its passive representation on disk. "
+"There is nothing to prevent an application from deleting B even though A "
+"still contains a reference to it. When A is next activated and attempts to "
+"access B, a run-time error will occur."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:24
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The ArjunaTA software can neither "
+"detect nor correct references to old object state by new operation versions "
+"or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:29
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:37
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:38
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:44
+#, no-c-format
+msgid "ArjunaTA runtime information"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:45
+#, no-c-format
+msgid ""
+"Each module that comprises ArjunaTA possesses a class called Info. These "
+"classes all provide a single toString method that returns an XML document "
+"representing the configuration information for that module. So, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:48
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;&lt;source-identifier&gt;unknown&lt;/"
+"source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] "
+"(Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/"
+"version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/"
+"notes&gt;&lt;configuration&gt;&lt;properties-file dir=\"null\"&gt;arjuna."
+"properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-"
+"store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:52
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:53
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA will ensure that results of a "
+"transaction are applied consistently to all resources affected by the "
+"transaction, even if any of the application processes or the machine hosting "
+"them crash or lose network connectivity. In the case of machine (system) "
+"crash or network failure, the recovery will not take place until the system "
+"or network are restored, but the original application does not need to be "
+"restarted – recovery responsibility is delegated to the Recovery Manager "
+"process (see below). Recovery after failure requires that information about "
+"the transaction and the resources involved survives the failure and is "
+"accessible afterward: this information is held in the ActionStore, which is "
+"part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:57
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:61
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects "
+"for Java resources, an attempt to activate the Transactional Object (as when "
+"trying to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:65
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:66
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of ArjunaTA requires that the stand-alone "
+"Recovery Manager process be running for each ObjectStore (typically one for "
+"each node on the network that is running ArjunaTA applications). The "
+"<filename>RecoveryManager</filename> file is located in the "
+"<filename>arjunacore</filename> jar file within the package <package>com."
+"arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery "
+"Manager issue the following command:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:70
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:71
+#, no-c-format
+msgid ""
+"If the -test flag is used with the Recovery Manager then it will display a "
+"<emphasis>Ready</emphasis> message when initialised, for instance:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:74
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:76
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:77
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the arjuna.properties "
+"file and then also reads the property file RecoveryManager.properties, from "
+"the same directory as it found the arjuna properties file. An entry for a "
+"property in the RecoveryManager properties file will override an entry for "
+"the same property in the main TransactionService properties file. Most of "
+"the entries are specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:81
+#, no-c-format
+msgid ""
+"A default version of RecoveryManager.properties is supplied with the "
+"distribution – this can be used without modification, except possibly the "
+"debug tracing fields (see below, Output). The rest of this section discusses "
+"the issues relevant in setting the properties to other values (in the order "
+"of their appearance in the default version of the file)."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:85
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:86
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:90
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:93
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:97
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:101
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:106
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, for example, constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:111
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:116
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, for example, the object store."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:121
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. ArjunaTA uses the default Debugging level and the default "
+"Visibility level provided by CLF, but it defines its own Facility Code. "
+"ArjunaTA uses the default level assigned to its logger objects (DEBUG). "
+"However, it uses the finer debugging features to disable or enable debug "
+"messages. Finer debugging values used by the ArjunaTA are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:124
+#, no-c-format
+msgid ""
+"Debugging level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:129
+#, no-c-format
+msgid "NO_DEBUGGING: No diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:132
+#, no-c-format
+msgid "A logger object assigned with this values discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:137
+#, no-c-format
+msgid "FULL_DEBUGGING: Full diagnostics."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:140
+#, no-c-format
+msgid ""
+"A Logger object assigned with this value allows all debug requests if the "
+"facility code and the visibility level match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:145
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:150
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:155
+#, no-c-format
+msgid "DESTRUCTORS: Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:160
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:165
+#, no-c-format
+msgid "FUNCTIONS: Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:170
+#, no-c-format
+msgid "OPERATORS: Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:175
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:180
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:185
+#, no-c-format
+msgid "TRIVIAL_FUNCS: Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:190
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:195
+#, no-c-format
+msgid "ALL_TRIVIAL: Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:200
+#, no-c-format
+msgid ""
+"Visibility level – ArjunaTA uses the default values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:205
+#, no-c-format
+msgid "VIS_NONE: No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:210
+#, no-c-format
+msgid "VIS_PRIVATE: Only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:215
+#, no-c-format
+msgid "VIS_PROTECTED: Only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:220
+#, no-c-format
+msgid "VIS_PUBLIC: Only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:225
+#, no-c-format
+msgid "VIS_: only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:230
+#, no-c-format
+msgid "VIS_ALL: Full Diagnostic ."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:235
+#, no-c-format
+msgid ""
+"Facility Code – ArjunaTA uses the following values defined in the class "
+"<classname>com.arjuna.common.util.logging.VisibilityLevel</classname>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:240
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:245
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:250
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:255
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:260
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:265
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:270
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:275
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:280
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:285
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:290
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:295
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the ArjunaTA module."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:298
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the <filename>CommonLogging.xml</filename>, "
+"enables all debug messages related to the Crash Recovery protocol and issued "
+"by the ArjunaTA module."
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:301
+#, no-c-format
+msgid ""
+"&lt;!--  Common logging related properties.   --&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"                 value=\"0x00000000\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;\n"
+"        &lt;property\n"
+"                 name=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"                 value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:303
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:307
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:311
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:312
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:316
+#, no-c-format
+msgid ""
+"The interface has two methods: <methodname>periodicWorkFirstPass</"
+"methodname> and <methodname>periodicWorkSecondPass</methodname>. At an "
+"interval (defined by property <property>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</property>), the RecoveryManager will call the first "
+"pass method on each property, then wait for a brief period (defined by "
+"property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</"
+"property>), then call the second pass of each module. Typically, in the "
+"first pass, the module scans (e.g. the relevant part of the ObjectStore) to "
+"find transactions or resources that are in-doubt (i.e. are part way through "
+"the commitment process). On the second pass, if any of the same items are "
+"still in-doubt, it is possible the original application process has crashed "
+"and the item is a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:319
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> "
+"package) to check to see if the original process is still alive, and if the "
+"transaction is still in progress. The RecoveryManager only proceeds with "
+"recovery if the original process has gone, or, if still alive, the "
+"transaction is completed. (If a server process or machine crashes, but the "
+"transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:322
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the periodicRecoveryPeriod, "
+"recoveryBackoffPeriod and the length of time it takes to scan the stores and "
+"to attempt recovery of any in-doubt transactions found, for all the recovery "
+"modules. The recovery attempt time may include connection timeouts while "
+"trying to communicate with processes or machines that have crashed or are "
+"inaccessible (which is why there are mechanisms in the recovery system to "
+"avoid trying to recover the same transaction for ever). The total iteration "
+"time will affect how long a resource will remain inaccessible after a "
+"failure – periodicRecoveryPeriod should be set accordingly (default is 120 "
+"seconds). The recoveryBackoffPeriod can be comparatively short (default is "
+"10 seconds) – its purpose is mainly to reduce the number of transactions "
+"that are candidates for recovery and which thus require a call to the "
+"original process to see if they are still in progress."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:326
+#, no-c-format
+msgid ""
+"In previous versions of ArjunaCore there was no contact mechanism, and the "
+"backoff period had to be long enough to avoid catching transactions in "
+"flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:330
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <interfacename>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with "
+"ArjunaTA, supporting various aspects of transaction recovery including JDBC "
+"recovery. It is possible for advanced users to create their own recovery "
+"modules and register them with the Recovery Manager. The recovery modules "
+"are registered with the RecoveryManager using properties that begin with "
+"<property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These "
+"will be invoked on each pass of the periodic recovery in the sort-order of "
+"the property names – it is thus possible to predict the ordering (but note "
+"that a failure in an application process might occur while a periodic "
+"recovery pass is in progress). The default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:333
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal."
+"ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"        \n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj."
+"recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:335
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:336
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</"
+"interfacename> interface. Implementations of this interface are loaded by "
+"giving the class name as the value of a property whose name begins with "
+"<property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The "
+"RecoveryManager calls the <methodname>scan()</methodname> method on each "
+"loaded Expiry Scanner implementation at an interval determined by the "
+"property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"property>. This value is given in hours – default is 12. An "
+"expiryScanInterval value of zero will suppress any expiry scanning. If the "
+"value as supplied is positive, the first scan is performed when "
+"RecoveryManager starts; if the value is negative, the first scan is delayed "
+"until after the first interval (using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:340
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:343
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses ArjunaCore – they contain the information that "
+"allows the RecoveryManager to determine if the process that initiated the "
+"transaction is still alive, and what the transaction status is. The expiry "
+"time for these is set by the property <property>com.arjuna.ats.arjuna."
+"recovery.transactionStatusManagerExpiryTime</property> (in hours – default "
+"is 12, zero means never expire). The expiry time should be greater than the "
+"lifetime of any single ArjunaTA-using process."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:346
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: screen
+#: Administration_of_ArjunaTA.xml:349
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com."
+"arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:353
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:354
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:359
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running "
+"the garbage collector) before re-throwing the exception. This is probably a "
+"transient problem and retrying the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:364
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:369
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:374
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:379
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Administration_of_ArjunaTA.xml:387
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:388
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:393
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the ArjunaTA product."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:398
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:404
+#, no-c-format
+msgid ""
+"Both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with ArjunaTA."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:408
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:413
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:418
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"UserTransactionImple</code>."
+msgstr ""
+
+#. Tag: para
+#: Administration_of_ArjunaTA.xml:424
+#, no-c-format
+msgid ""
+"These settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the administration of Arjuna TA"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/JBoss_Transactions_JTA_Administration_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Administration_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:22+0000\n"
+"PO-Revision-Date: 2008-09-23 06:22+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+#Makefile for Transactions_JTA_Programmers_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/An_Introduction_to_the_JTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/An_Introduction_to_the_JTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/An_Introduction_to_the_JTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,111 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr ""
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 00:05+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Configuring_JBossJTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Configuring_JBossJTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Configuring_JBossJTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,135 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr ""
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Examples.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Examples.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Examples.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,470 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/JBoss_Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/JDBC_and_Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/JDBC_and_Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/JDBC_and_Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,750 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/The_Resource_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/The_Resource_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/The_Resource_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,662 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transaction_Recovery.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transaction_Recovery.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transaction_Recovery.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,472 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Using_JBossJTA_in_Application_Servers.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Using_JBossJTA_in_Application_Servers.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/de-DE/Using_JBossJTA_in_Application_Servers.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,208 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,52 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-An_Introduction_to_the_JTA">
+	<title>An Introduction to the JTA</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-An_Introduction_to_the_JTA-The_Java_Transaction_API">
+		<title>The Java Transaction API</title>
+		<para>
+			The interfaces specified by the many transaction standards are typically too low-level for most application programmers. Therefore, Sun Microsystems has specified higher-level interfaces to assist in the development of distributed transactional applications. Note, these interfaces are still low-level, and require, for example, the programmer to be concerned with state management and concurrency for transactional application. In addition, they are geared more for applications which require XA resource integration capabilities, rather than the more general resources which the other APIs allow.
+		</para>
+		<para>
+			With reference to [JTA99], distributed transaction services typically involve a number of participants:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Application server: which provides the infrastructure required to support the application run-time environment which includes transaction state management, for example, an EJB server.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Transaction manager: provides the services and management functions required to support transaction demarcation, transactional resource management, synchronisation and transaction context propagation.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Resource manager: (through a resource adapter<footnote>
+					<para>
+						A Resource Adapter is used by an application server or client to connect to a Resource Manager. JDBC drivers which are used to connect to relational databases are examples of Resource Adapters.
+					</para>
+					</footnote>) provides the application with access to resources. The resource manager participates in distributed transactions by implementing a transaction resource interface used by the transaction manager to communicate transaction association, transaction completion and recovery.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					A communication resource manager (CRM): supports transaction context propagation and access to the transaction service for incoming and outgoing requests.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			From the transaction manager’s perspective, the actual implementation of the transaction services does not need to be exposed; only high-level interfaces need to be defined to allow transaction demarcation, resource enlistment, synchronization and recovery process to be driven from the users of the transaction services. The JTA is a high-level application interface that allows a transactional application to demarcate transaction boundaries, and contains also contains a mapping of the X/Open XA protocol.
+		</para>
+		<note>
+			<para>
+				The JTA support provided by JBossJTA is compliant with the 1.0.1 specification.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,32 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_JTA_Programmers_Guide-Transactions_JTA_Programmers_Guide">
+	<title>JBoss Transactions JTA Programmers Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is about the Transactions JTA from the view of the
+programmer</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,95 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Configuring_JBossJTA">
+	<title>Configuring JBossJTA</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Configuring_JBossJTA-Configuring_options">
+		<title>Configuring options</title>
+		<para>
+			The following table shows the configuration features, with default values shown in italics. For more detailed information, the relevant section numbers are provided.
+		</para>
+		<table frame="all" id="tabl-Transactions_JTA_Programmers_Guide-Configuring_options-JBossJTA_configuration_options.">
+			<title>JBossJTA configuration options.</title>
+			<tgroup cols="3">
+				<thead>
+					<row>
+						<entry>
+							Configuration Name
+						</entry>
+						<entry>
+							Possibile Values
+						</entry>
+						<entry>
+							Relevant Section
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.supportSubtransactions
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.jtaTMImplementation
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.jtaUTImplementation
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.xaBackoffPeriod
+						</entry>
+						<entry>
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jdbc.isolationLevel
+						</entry>
+						<entry>
+							Any supported JDBC isolation level.
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.xaTransactionTimetouEnabled
+						</entry>
+						<entry>
+							true/false
+						</entry>
+						<entry>
+							Chapter 3
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Examples.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Examples.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Examples.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,356 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Examples">
+	<title>Examples</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Examples-JDBC_example">
+		<title>JDBC example</title>
+		<para>
+			The following code illustrates many of the points described above (note that for simplicity, much error checking code has been remove). This example assumes that you are using the transactional JDBC driver provided with JBossTS. For details about how to configure and use this driver see the previous Chapter.
+		</para>
+<screen>
+public class JDBCTest
+{
+public static void main (String[] args)
+{
+	/*
+	 */
+	
+	Connection conn = null;
+	Connection conn2 = null;
+	Statement stmt = null;        // non-tx statement
+	Statement stmtx = null;	// will be a tx-statement
+	Properties dbProperties = new Properties();
+	
+	try
+	{
+		System.out.println("\nCreating connection to database: "+url);
+	
+		/*
+		 * Create conn and conn2 so that they are bound to the JBossTS
+		 * transactional JDBC driver. The details of how to do this will
+		 * depend on your environment, the database you wish to use and
+		 * whether or not you want to use the Direct or JNDI approach. See
+		 * the appropriate chapter in the JTA Programmers Guide.
+		 */
+	
+		stmt = conn.createStatement();  // non-tx statement
+	
+		try
+		{
+			stmt.executeUpdate("DROP TABLE test_table");
+			stmt.executeUpdate("DROP TABLE test_table2");
+		}
+		catch (Exception e)
+		{
+			// assume not in database.
+		}
+	
+		try
+		{
+			stmt.executeUpdate("CREATE TABLE test_table (a INTEGER,b INTEGER)");
+			stmt.executeUpdate("CREATE TABLE test_table2 (a INTEGER,b INTEGER)");
+		}
+		catch (Exception e)
+		{
+		}
+	
+		try
+		{
+			System.out.println("Starting top-level transaction.");
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().begin();
+	
+			stmtx = conn.createStatement(); // will be a tx-statement
+	
+			System.out.println("\nAdding entries to table 1.");
+	
+			stmtx.executeUpdate("INSERT INTO test_table (a, b) VALUES (1,2)");
+	
+			ResultSet res1 = null;
+	
+			System.out.println("\nInspecting table 1.");
+	
+			res1 = stmtx.executeQuery("SELECT * FROM test_table");
+			while (res1.next())
+			{
+				System.out.println("Column 1: "+res1.getInt(1));
+				System.out.println("Column 2: "+res1.getInt(2));
+			}
+	
+			System.out.println("\nAdding entries to table 2.");
+	
+			stmtx.executeUpdate("INSERT INTO test_table2 (a, b) VALUES (3,4)");
+			
+			res1 = stmtx.executeQuery("SELECT * FROM test_table2");
+			
+			System.out.println("\nInspecting table 2.");
+	
+			while (res1.next())
+			{
+				System.out.println("Column 1: "+res1.getInt(1));
+				System.out.println("Column 2: "+res1.getInt(2));
+			}
+			System.out.print("\nNow attempting to rollback changes.");
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().rollback();
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().begin();
+	
+			stmtx = conn.createStatement();
+			ResultSet res2 = null;
+	
+			System.out.println("\nNow checking state of table 1.");
+	
+			res2 = stmtx.executeQuery("SELECT * FROM test_table");
+			while (res2.next())
+			{
+				System.out.println("Column 1: "+res2.getInt(1));
+				System.out.println("Column 2: "+res2.getInt(2));
+			}
+	
+			System.out.println("\nNow checking state of table 2.");
+	
+			stmtx = conn.createStatement();
+			res2 = stmtx.executeQuery("SELECT * FROM test_table2");
+			while (res2.next())
+			{
+				System.out.println("Column 1: "+res2.getInt(1));
+				System.out.println("Column 2: "+res2.getInt(2));
+			}
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().commit(true);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+			System.exit(0);
+		}
+	}
+	catch (Exception sysEx)
+	{
+		sysEx.printStackTrace();
+		System.exit(0);
+	}
+}
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Examples-Failure_recovery_example">
+		<title>Failure recovery example</title>
+		<para>
+			This class implements the <interfacename>XAResourceRecovery</interfacename> interface for <code>XAResources</code>. The parameter supplied in setParameters can contain arbitrary information necessary to initialize the class once created. In this instance it contains the name of the property file in which the db connection information is specified, as well as the number of connections that this file contains information on (separated by ;).
+		</para>
+		<important>
+			<para>
+				This is only an <emphasis>example</emphasis> of the sorts of things an <code>XAResourceRecovery</code> implementer could do. This implementation uses a property file that is assumed to contain sufficient information to recreate connections used during the normal run of an application so that we can perform recovery on them. It is not recommended that information such as user name and password appear in such a raw text format as it opens up a potential security hole.
+			</para>
+		</important>
+		<para>
+			The db parameters specified in the property file are assumed to be in the format:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					DB_x_DatabaseURL=
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DB_x_DatabaseUser=
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DB_x_DatabasePassword=
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DB_x_DatabaseDynamicClass=
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Where x is the number of the connection information.
+		</para>
+		<note>
+			<para>
+				Some error handling code has been removed from this text for ease of readability purposes.
+			</para>
+		</note>
+<screen>
+/*
+ * Some XAResourceRecovery implementations will do their startup work here,
+ * and then do little or nothing in setDetails. Since this one needs to know
+ * dynamic class name, the constructor does nothing.
+ */
+	
+public BasicXARecovery () throws SQLException
+{
+	numberOfConnections = 1;
+	connectionIndex = 0;
+	props = null;
+}
+	
+/*
+ * The recovery module will have chopped off this class name already. The
+ * parameter should specify a property file from which the url, user name,
+ * password, etc. can be read.
+ * 
+ * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception
+ *          occurred during initialisation.
+ */
+	
+public boolean initialise (String parameter) throws SQLException
+{
+	if (parameter == null) 
+		return true;
+	
+	int breakPosition = parameter.indexOf(BREAKCHARACTER);
+	String fileName = parameter;
+	
+	if (breakPosition != -1)
+	{
+		fileName = parameter.substring(0, breakPosition - 1);
+	
+		try
+		{
+			numberOfConnections = Integer.parseInt(parameter.substring(breakPosition + 1));
+		}
+		catch (NumberFormatException e)
+		{
+			return false;
+		}
+	}
+	
+	try
+	{
+		String uri = com.arjuna.common.util.FileLocator.locateFile(fileName);
+		jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class.getName(), uri);
+	
+		props = jdbcPropertyManager.propertyManager.getProperties();
+	}
+	catch (Exception e)
+	{
+		return false;
+	}
+	
+	return true;
+}
+	
+/*
+ * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find
+ *          information for connection!
+ */
+	
+public synchronized XAResource getXAResource () throws SQLException
+{
+	JDBC2RecoveryConnection conn = null;
+	
+	if (hasMoreResources())
+	{
+		connectionIndex++;
+	
+		conn = getStandardConnection();
+	
+	if (conn == null) conn = getJNDIConnection();
+	}
+	
+		return conn.recoveryConnection().getConnection().getXAResource();
+}
+	
+public synchronized boolean hasMoreResources ()
+{
+	if (connectionIndex == numberOfConnections) 
+		return false;
+	else
+		return true;
+}
+	
+private final JDBC2RecoveryConnection getStandardConnection ()
+	throws SQLException
+{
+	String number = new String("" + connectionIndex);
+	String url = new String(dbTag + number + urlTag);
+	String password = new String(dbTag + number + passwordTag);
+	String user = new String(dbTag + number + userTag);
+	String dynamicClass = new String(dbTag + number + dynamicClassTag);
+	
+	Properties dbProperties = new Properties();
+	
+	String theUser = props.getProperty(user);
+	String thePassword = props.getProperty(password);
+	
+	if (theUser != null)
+	{
+		dbProperties.put(TransactionalDriver.userName, theUser);
+		dbProperties.put(TransactionalDriver.password, thePassword);
+	
+		String dc = props.getProperty(dynamicClass);
+	
+		if (dc != null)
+			dbProperties.put(TransactionalDriver.dynamicClass, dc);
+	
+		return new JDBC2RecoveryConnection(url, dbProperties);
+	}
+	else
+		return null;
+}
+	
+private final JDBC2RecoveryConnection getJNDIConnection ()
+	throws SQLException
+{
+	String number = new String("" + connectionIndex);
+	String url = new String(dbTag + jndiTag + number + urlTag);
+	String password = new String(dbTag + jndiTag + number + passwordTag);
+	String user = new String(dbTag + jndiTag + number + userTag);
+	
+	Properties dbProperties = new Properties();
+	
+	String theUser = props.getProperty(user);
+	String thePassword = props.getProperty(password);
+	
+	if (theUser != null)
+	{
+		dbProperties.put(TransactionalDriver.userName, theUser);
+		dbProperties.put(TransactionalDriver.password, thePassword);
+	
+		return new JDBC2RecoveryConnection(url, dbProperties);
+	}
+	else
+		return null;
+}
+	
+private int numberOfConnections;
+private int connectionIndex;
+private Properties props;
+private static final String dbTag = "DB_";
+private static final String urlTag = "_DatabaseURL";
+private static final String passwordTag = "_DatabasePassword";
+private static final String userTag = "_DatabaseUser";
+private static final String dynamicClassTag = "_DatabaseDynamicClass";
+private static final String jndiTag = "JNDI_";
+	
+/*
+ * Example:
+ * 
+ * DB2_DatabaseURL=jdbc\:arjuna\:sequelink\://qa02\:20001
+ * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester
+ * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1
+ * 
+ * DB_JNDI_DatabaseURL=jdbc\:arjuna\:jndi DB_JNDI_DatabaseUser=tester1
+ * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay
+ * DB_JNDI_Host=qa02 DB_JNDI_Port=20000
+ */
+
+ private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for parameters
+</screen>
+		<para>
+			The class <classname>com.arjuna.ats.internal.jdbc.recovery.JDBC2RecoveryConnection</classname> may be used to create a new connection to the database using the same parameters that were used to create the initial connection.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_JTA_Programmers_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="An_Introduction_to_the_JTA.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="The_Resource_Manager.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transaction_Recovery.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="JDBC_and_Transactions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Examples.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Configuring_JBossJTA.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Using_JBossJTA_in_Application_Servers.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,350 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions">
+	<title>JDBC and Transactions</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions-Using_the_transactional_JDBC_driver">
+		<title>Using the transactional JDBC driver</title>
+		<para>
+			JBossJTA supports the construction of both local and distributed transactional applications which access databases using the JDBC 2.0 APIs. JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc package.
+		</para>
+		<para>
+			The JDBC 2.0 support has been tested with the following drivers and databases:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Oracle 8.1.6/8.1.7, 9i and 10g thin driver.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					MS SQL Server 2000 native driver.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			In the past we have qualified against:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Merant’s Sequelink 5.1 with Oracle 8.1.6
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Cloudscape 3.6 with Cloudscape’s own database.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			However, these drivers and databases are no longer part of our supported platforms. They may continue to work with JBossTS, but we cannot make that guarantee.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Using_the_transactional_JDBC_driver-Managing_transactions">
+			<title>Managing transactions</title>
+			<para>
+				JBossJTA must be able to associate work performed on a JDBC connection with a specific transaction. Therefore, implicit transaction propagation and/or indirect transaction management must be used by applications, i.e., for each JDBC connection it must be possible for JBossJTA to determine the invoking thread’s current transaction context.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Using_the_transactional_JDBC_driver-Restrictions">
+			<title>Restrictions</title>
+			<para>
+				The following restrictions are imposed by limitations in the JDBC specifications and by JBossJTA to ensure that transactional interactions with JDBC databases can be correctly managed:
+			</para>
+		</formalpara>
+		<para>
+			Nested transactions are not supported by JDBC 2.0. If an attempt is made to use a JDBC connection within a subtransaction, JBossJTA will throw a suitable exception and no work will be allowed on that connection. However, if you wish to have nested transactions, then you can set the <property>com.arjuna.ats.jta.supportSubtransactions</property> property to YES.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions-Transactional_drivers">
+		<title>Transactional drivers</title>
+		<para>
+			The JBossJTA approach to incorporating JDBC connections within transactions is to provide transactional JDBC drivers through which all interactions occur. These drivers intercept all invocations and ensure that they are registered with, and driven by, appropriate transactions. There is a single type of transactional driver through which any JDBC driver can be driven; obviously if the database is not transactional then ACID properties cannot be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</code>, which implements the <interfacename>java.sql.Driver</interfacename> interface.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Transactional_drivers-Loading_drivers">
+			<title>Loading drivers</title>
+			<para>
+				The driver may be directly instantiated and used within an application. For example:
+			</para>
+		</formalpara>
+<screen>
+TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();
+</screen>
+		<para>
+			They can be registered with the JDBC driver manager (<code>java.sql.DriverManager</code>) by adding them to the Java system properties. The <property>jdbc.drivers</property> property contains a list of driver class names, separated by colons, that are loaded by the JDBC driver manager when it is initialized.
+		</para>
+<screen>
+/*
+ * Register the driver via the system properties variable
+ * "jdbc.drivers"
+ */ 
+	
+Properties p = System.getProperties(); 
+	
+switch (dbType)
+{
+case MYSQL:
+	p.put("jdbc.drivers", "org.gjt.mm.mysql.Driver"); 
+	break;
+case CLOUDSCAPE:
+	p.put("jdbc.drivers", "COM.cloudscape.core.JDBCDriver"); 
+	break;
+}
+	
+System.setProperties(p);
+</screen>
+		<para>
+			Alternatively, the <methodname>Class.forName()</methodname> method may be used to load the driver or drivers:
+		</para>
+<screen>
+Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
+</screen>
+		<para>
+			Calling <methodname>Class.forName()</methodname> will automatically register the driver with the JDBC driver manager. It is also possible to explicitly create an instance of the JDBC driver:
+		</para>
+<screen>
+sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();
+	
+DriverManager.registerDriver(drv);
+</screen>
+		<para>
+			When you have loaded a driver, it is available for making a connection with a DBMS.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions-Connections">
+		<title>Connections</title>
+		<para>
+			In this section we shall discuss the notion of transactional JDBC connections, how they are managed within JBossJTA and the implications on using them within an application.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Making_the_connection">
+			<title>Making the connection</title>
+			<para>
+				Because JDBC connectivity in JBossJTA works by simply providing a new JDBC driver, application code can remain relatively the same to that when not using transactions. Typically, the application programmer need only start and terminate transactions.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-JDBC_2.0">
+			<title>JDBC 2.0</title>
+			<para>
+				Before describing the JDBC 2.0 support it is necessary to mention that the following properties can be set and passed to the JBossJTA driver (they are all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</classname> class):
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<property>userName</property>: the user name to use when attempting to connect to the database.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>password</property>: the password to use when attempting to connect to the database.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>createDb</property>: if set to true, the driver will attempt to create the database when it connects. This may not be supported by all JDBC 2.0 implementations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>dynamicClass</property>: this specifies a class to instantiate to connect to the database, rather than using JNDI.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-XADataSources">
+			<title>XADataSources</title>
+			<para>
+				JDBC 2.0 connections are created from appropriate DataSources. Those connections which must participate within distributed transactions are obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 driver, JBossJTA will use the appropriate DataSource whenever a connection to the database is made. It will then obtain <code>XAResources</code> and register them with the transaction via the JTA interfaces. It is these <code>XAResources</code> which the transaction service will use when the transaction terminates in order to drive the database to either commit or rollback the changes made via the JDBC connection.
+			</para>
+		</formalpara>
+		<para>
+			There are two ways in which the JBossJTA JDBC 2.0 support can obtain <code>XADataSources</code>. These will be explained in the following sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is instantiated directly by the application.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Java_Naming_and_Directory_Interface_JNDI">
+			<title>Java Naming and Directory Interface (JNDI)</title>
+			<para>
+				In order to allow a JDBC driver to use arbitrary DataSources without having to know specific details about their implementations, DataSources are typically obtained from JNDI. A specific (XA)DataSource can be created and registered with an appropriate JNDI implementation, and the application (or JDBC driver) can later bind to and use it. Since JNDI only allows the application to see the (XA)DataSource as an instance of the interface (for example, <property>javax.sql.XADataSource</property>) rather than as an instance of the implementation class (for example, <property>com.mydb.myXADataSource</property>), the application is not tied at build time to only use a specific (XA)DataSource implementation.
+			</para>
+		</formalpara>
+		<para>
+			To get the <classname>TransactionalDriver</classname> class to use a JNDI registered <code>XADataSource</code> it is first necessary to create the <code>XADataSource</code> instance and store it in an appropriate JNDI implementation. Details of how to do this can be found in the JDBC 2.0 tutorial available at JavaSoft. An example is show below:
+		</para>
+<screen>
+XADataSource ds = MyXADataSource();
+Hashtable env = new Hashtable();
+String initialCtx = PropertyManager.getProperty("Context.INITIAL_CONTEXT_FACTORY");
+	
+env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);
+	
+initialContext ctx = new InitialContext(env);
+	
+ctx.bind("jdbc/foo", ds);
+</screen>
+		<para>
+			Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is the JNDI way of specifying the type of JNDI implementation to use.
+		</para>
+		<para>
+			Then the application must pass an appropriate connection URL to the JDBC 2.0 driver:
+		</para>
+<screen>
+Properties dbProps = new Properties();
+	
+dbProps.setProperty(TransactionalDriver.userName, "user");
+dbProps.setProperty(TransactionalDriver.password, "password");
+	
+TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();
+Connection connection = arjunaJDBC2Driver.connect("jdbc:arjuna:jdbc/foo", dbProps);
+</screen>
+		<para>
+			The JNDI URL must be pre-pended with jdbc:arjuna: in order for the <code>ArjunaJDBC2Driver</code> to recognise that the DataSource must participate within transactions and be driven accordingly.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Dynamic_class_instantiation">
+			<title>Dynamic class instantiation</title>
+			<para>
+				Many JDBC 2.0 implementations provide proprietary implementations of <interfacename>XADataSources</interfacename> that provide non-standard extensions to the specification. In order to allow the application to remain isolated from the actual JDBC 2.0 implementation it is using and yet continue to be able to use these extensions, JBossJTA hides the details of these proprietary implementations using dynamic class instantiation. In addition, the use of JNDI is not required when using this mechanism because the actual implementation of the <interfacename>XADataSource</interfacename> will be directly instantiated, albeit in a manner which will not tie an application or driver to a specific implementation. JBossJTA therefore has several classes which are for specific JDBC 2.0 implementations, and these can be selected at runtime by the application setting the <property>dynamicClass</property> property appropriately:
+			</para>
+		</formalpara>
+		<table frame="all" id="tabl-Transactions_JTA_Programmers_Guide-Connections-Dynamic_Class_property_values_for_specific_databases">
+			<title>Dynamic Class property values for specific databases</title>
+			<tgroup cols="2">
+				<thead>
+					<row>
+						<entry>
+							Database Type
+						</entry>
+						<entry>
+							Property Name
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							Cloudscape 3.6
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6
+						</entry>
+					</row>
+					<row>
+						<entry>
+							Sequelink 5.1
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1
+						</entry>
+					</row>
+					<row>
+						<entry>
+							Oracle 8.1.6
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+		<note>
+			<para>
+				As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as part of the qualified drivers. Furthermore, we recommend using JNDI to obtain JDBC classes rather than the direct method described here.
+			</para>
+		</note>
+		<para>
+			The application code must specify which dynamic class the <code>TransactionalDriver</code> should instantiate when setting up the connection:
+		</para>
+<screen>
+Properties dbProps = new Properties();
+	
+dbProps.setProperty(TransactionalDriver.userName, "user");
+dbProps.setProperty(TransactionalDriver.password, "password");
+dbProps.setProperty(TransactionalDriver.dynamicClass,
+"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0");
+	
+TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();
+Connection connection = arjunaJDBC2Driver.connect("jdbc:arjuna:sequelink://host:port;databaseName=foo",dbProperties);
+</screen>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Using_the_connection">
+			<title>Using the connection</title>
+			<para>
+				Once the connection has been established (for example, using the <methodname>java.sql.DriverManager.getConnection</methodname> method), all operations on the connection will be monitored by JBossJTA. Note, it is not necessary to use the transactional connection within transactions. If a transaction is not present when the connection is used, then operations will be performed directly on the database.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				JDBC does not support subtransactions.
+			</para>
+		</note>
+		<para>
+			Transaction timeouts can be used to automatically terminate transactions should the connection not be terminated within an appropriate period.
+		</para>
+		<para>
+			JBossJTA connections can be used within multiple different transactions simultaneously, for instance, different threads, with different notions of the current transaction, may use the same JDBC connection. JBossJTA does connection pooling for each transaction within the JDBC connection. So, although multiple threads may use the same instance of the JDBC connection, internally this may be using a different connection instance per transaction. With the exception of close, all operations performed on the connection at the application level will only be performed on this transaction-specific connection.
+		</para>
+		<para>
+			JBossJTA will automatically register the JDBC driver connection with the transaction via an appropriate resource . When the transaction terminates, this resource will be responsible for either committing or rolling back any changes made to the underlying database via appropriate calls on the JDBC driver.
+		</para>
+		<para>
+			Once created, the driver and any connection can be used in the same way as any other JDBC driver or connection.
+		</para>
+<screen>
+Statement stmt = conn.createStatement();
+	
+try
+{
+	stmt.executeUpdate("CREATE TABLE test_table (a INTEGER,b INTEGER)");
+}
+catch (SQLException e)
+{
+	// table already exists
+}
+	
+stmt.executeUpdate("INSERT INTO test_table (a, b) VALUES (1,2)");
+	
+ResultSet res1 = stmt.executeQuery("SELECT * FROM test_table");
+</screen>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Connection_pooling">
+			<title>Connection pooling</title>
+			<para>
+				For each user name and password, JBossJTA will maintain a single instance of each connection for as long as that connection is in use. Subsequent requests for the same connection will get a reference to the originally created connection, rather than a new instance. Attempts to close the connection are allowed, but the connection will only actually be closed when all users (including transactions) have either finished with the connection, or issued close calls.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Reusing_connections">
+			<title>Reusing connections</title>
+			<para>
+				Some JDBC drivers allow the reuse of a connection for multiple different transactions once a given transaction has completed. Unfortunately this is not a common feature, and other drivers require a new connection to be obtained for each new transaction. By default, the JBossJTA transactional driver will always obtain a new connection for each new transaction. However, if an existing connection is available and is currently unused, it is possible to make JBossJTA reuse this connection. In order to do this, the reuseconnection=true option must be specified on the JDBC URL. For example:
+			</para>
+		</formalpara>
+<screen>
+jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true
+</screen>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Terminating_the_transaction">
+			<title>Terminating the transaction</title>
+			<para>
+				Whenever a transaction terminates (either explicitly by the application programmer, or implicitly when any associated transaction timeout expires) that has a JDBC connection registered with it, JBossJTA will drive the database (via the JDBC driver) to either commit or roll back any changes made to it. This happens transparently to the application.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-AutoCommit">
+			<title>AutoCommit</title>
+			<para>
+				If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to true for JDBC 1.0 then the execution of every SQL statement is a separate top-level transaction, and grouping multiple statements to be managed within a single OTS transaction is not possible. Therefore, JBossJTA will disable <code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If auto commit is subsequently set to true by the application, JBossJTA will raise the <code>java.sql.SQLException</code>.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Setting_isolation_levels">
+			<title>Setting isolation levels</title>
+			<para>
+				When using the JBossJTA JDBC driver, it may be necessary to set the underlying transaction isolation level on the XA connection. By default, this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to set this to something more appropriate for your application. In order to do this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> property to the appropriate isolation level in string form, for example, <code>TRANSACTION_READ_COMMITTED</code>, or <code>TRANSACTION_REPEATABLE_READ</code>.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				At present this property applies to all XA connections created in the JVM.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="pref-Transactions_JTA_Programmers_Guide-Preface">
+	<title>Preface</title>
+
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+		</xi:fallback>
+	</xi:include>
+</preface>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,265 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Test">
+	<title>Test</title>
+	<para>
+		This is a test paragraph
+	</para>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-The_XAResource_Interface">
+		<title>The XAResource Interface</title>
+		<para>
+			Whereas some transaction specifications and systems define a generic resource which can be used to register arbitrary resources with a transaction, the JTA is much more XA specific. The <interfacename>javax.transaction.xa.XAResource</interfacename> interface is a Java mapping of the <interfacename>XA</interfacename> interface. The <interfacename>XAResource</interfacename> interface defines the contract between a Resource Manager and a Transaction Manager in a distributed transaction processing environment. A resource adapter for a resource manager implements the <interfacename>XAResource</interfacename> interface to support association of a top-level transaction to a resource such as a relational database.
+		</para>
+		<para>
+			The <interfacename>XAResource</interfacename> interface can be supported by any transactional resource adapter that is intended to be used in an environment where transactions are controlled by an external transaction manager, for example, a database management system. An application may access data through multiple database connections. Each database connection is associated with an <code>XAResource</code> object that serves as a proxy object to the underlying resource manager instance. The transaction manager obtains an <code>XAResource</code> for each resource manager participating in a top-level transaction. It uses the start method to associate the transaction with the resource, and it uses the end method to disassociate the transaction from the resource.
+		</para>
+		<para>
+			The resource manager is responsible for associating the transaction with all work performed on its data between the start and end invocations. At transaction commit time, these transactional resource managers are informed by the transaction manager to prepare, commit, or rollback the transaction according to the two-phase commit protocol.
+		</para>
+		<para>
+			In order to be better integrated with Java, the <interfacename>XAResource</interfacename> differs from the standard <interfacename>XA</interfacename> interface in the following ways:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The resource manager initialization is done implicitly by the resource adapter when the resource (connection) is acquired. There is no <code>xa_open</code> equivalent.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is represented by a separate <code>XAResource</code> object.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Asynchronous operations are not supported because Java supports multi-threaded processing and most databases do not support asynchronous operations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Error return values that are caused by the transaction manager’s improper handling of the <code>XAResource</code> object are mapped to Java exceptions via the <classname>XAException</classname> class.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java threads that are given access to the <code>XAResource</code> and <code>Connection</code> objects. For example, it is legal for two different threads to perform the start and end operations on the same <code>XAResource</code> object.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_XAResource_Interface-Extended_XAResource_control">
+			<title>Extended XAResource control</title>
+			<para>
+				By default, whenever an <code>XAResource</code> object is registered with a JTA compliant transaction service, you have no control over the order in which it will be invoked during the two-phase commit protocol, with respect to other <code>XAResource</code> objects. In JBossTS, however, there is support for controlling the order via the two interfaces <interfacename>com.arjuna.ats.jta.resources.StartXAResource</interfacename> and <interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. By inheriting your <code>XAResource</code> instance from either of these interfaces, you control whether an instance of your class will be invoked first or last, respectively.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				Only one instance of each interface type may be registered with a specific transaction.
+			</para>
+		</note>
+		<para>
+			In the TxCore manual we discussed the Last Resource Commit optimization (LRCO), whereby a single resource that is only one-phase aware (does not support prepare), can be enlisted with a transaction that is manipulating two-phase aware participants. This optimization is also supported within the JTA aspects of JBossTS.
+		</para>
+		<para>
+			In order to use the LRCO, your <interfacename>XAResource</interfacename> implementation must extend the <interfacename>com.arjuna.ats.jta.resources.LastResourceCommitOptimisation</interfacename> marker interface (it provides no methods). When enlisting the resource via Transaction.enlistResource, JBossTS will ensure that only a single instance of this type of participant is used within each transaction. Your resource will be driven last in the commit protocol: no invocation of prepare will occur.
+		</para>
+		<note>
+			<para>
+				By default an attempt to enlist more than one instance of a <classname>LastResourceCommitOptimisation</classname> class will fail and false will be returned from <methodname>Transaction.enlistResource</methodname>. This behaviour can be overridden by setting the <property>com.arjuna.ats.jta.allowMultipleLastResources</property> to true. However, before doing so you should read the Section on enlisting multiple one-phase aware resources.
+			</para>
+		</note>
+		<para>
+			In order to utilize the LRCO in a distributed environment, it is necessary to disable interposition support. It is still possible to use implicit context propagation.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_XAResource_Interface-Enlisting_multiple_one_phase_aware_resources">
+			<title>Enlisting multiple one-phase aware resources</title>
+			<para>
+				As discussed in the Transaction Core documentation, in order to guarantee consistency (atomicity) of outcome between multiple participants (resources) within the same transaction, the two-phase commit protocol is used with a durable transaction log. In the case of possessing a single one-phase aware resource, it is still possible to achieve an atomic (all of nothing) outcome across resources by utilizing the Last Resource Commit Optimization, as explained earlier.
+			</para>
+		</formalpara>
+		<para>
+			However, there may be situations where multiple one-phase aware resources are enlisted within the same transaction. For example, a legacy database running within the same transaction as a legacy JMS implementation. In these situations it is not possible to achieve atomicity of transaction outcome across multiple resources because none of them enter the prepare (waiting for final outcome) state: they commit or rollback immediately when instructed by the transaction coordinator, without knowledge of other resource states and without any way of undoing should subsequent resources make a different choice. This can result in data corruption or heuristic outcomes.
+		</para>
+		<para>
+			In these situations we recommend one of the following approaches:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Wrap the resources in compensating transactions. See the Web Services transactions guides for further details.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Migrate the legacy implementations to two-phase aware equivalents.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			In the cases where neither of these options are viable, JBossTS does support the enlistment of multiple one-phase aware resources within the same transaction. In order to do this, see the section on the Last Resource Commit Optimization.
+		</para>
+		<important>
+			<para>
+				Even when this support is enabled, JBossTS will issue warnings when it detects that the option has been enabled ("You have chosen to enable multiple last resources in the transaction manager. This is transactionally unsafe and should not be relied upon.”) and when multiple one-phase resources are enlisted within the transaction (“This is transactionally unsafe and should not be relied on.”).
+			</para>
+		</important>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Opening_a_Resource_Manager">
+		<title>Opening a Resource Manager</title>
+		<para>
+			The X/Open <interfacename>XA</interfacename> interface requires that the transaction manager initialize a resource manager (xa_open) prior to any other xa_ calls. JTA requires initialization of a resource manager to be embedded within the resource adapter that represents the resource manager. The transaction manager does not need to know how to initialize a resource manager; it is only responsible for informing the resource manager about when to start and end work associated with a transaction and when to complete the transaction. The resource adapter is responsible for opening (initializing) the resource manager when the connection to the resource manager is established.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Closing_a_Resource_Manager">
+		<title>Closing a Resource Manager</title>
+		<para>
+			A resource manager is closed by the resource adapter as a result of destroying the transactional resource. A transaction resource at the resource adapter level is comprised of two separate objects:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					An <code>XAResource</code> object that allows the transaction manager to start and end the transaction association with the resource in use and to coordinate transaction completion process.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					A connection object that allows the application to perform operations on the underlying resource (for example, JDBC operations on an RDBMS).
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Once opened, the resource manager is kept open until the resource is released (closed) explicitly. When the application invokes the connection’s close method, the resource adapter invalidates the connection object reference that was held by the application and notifies the application server about the close. The transaction manager should invoke the <methodname>XAResource.end</methodname> method to disassociate the transaction from that connection.
+		</para>
+		<para>
+			The close notification allows the application server to perform any necessary cleanup work and to mark the physical XA connection as free for reuse, if connection pooling is in place.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Threads_of_control">
+		<title>Threads of control</title>
+		<para>
+			The X/Open <interfacename>XA</interfacename> interface specifies that the transaction association related xa calls must be invoked from the same thread context. This thread-of-control requirement is not applicable to the object-oriented component-based application run-time environment, in which application threads are dispatched dynamically at method invocation time. Different threads may be using the same connection resource to access the resource manager if the connection spans multiple method invocation. Depending on the implementation of the application server, different threads may be involved with the same <code>XAResource</code> object. The resource context and the transaction context may be operated independent of thread context. This means that it is possible for different threads to be invoking the start and end methods.
+		</para>
+		<para>
+			If the application server allows multiple threads to use a single <code>XAResource</code> object and the associated connection to the resource manager, it is the responsibility of the application server to ensure that there is only one transaction context associated with the resource at any point of time. Thus the <interfacename>XAResource</interfacename> interface requires that the resource managers be able to support the two-phase commit protocol from any thread context.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Transaction_association">
+		<title>Transaction association</title>
+		<para>
+			Transactions are associated with a transactional resource via the start method, and disassociated from the resource via the <methodname>end</methodname> method. The resource adapter is responsible for internally maintaining an association between the resource connection object and the <code>XAResource</code> object. At any given time, a connection is associated with a single transaction, or it is not associated with any transaction at all. Because JTA does not support nested transactions it is an error for the start method to be invoked on a connection that is currently associated with a different transaction.
+		</para>
+		<para>
+			Interleaving multiple transaction contexts using the same resource may be done by the transaction manager as long as start and end are invoked properly for each transaction context switch. Each time the resource is used with a different transaction, the method end must be invoked for the previous transaction that was associated with the resource, and start must be invoked for the current transaction context.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Externally_controlled_connections">
+		<title>Externally controlled connections</title>
+		<para>
+			For transactional application whose transaction states are managed by an application server, its resources must also be managed by the application server so that transaction association is performed properly. If an application is associated with a transaction, it is an error for the application to perform transactional work through the connection without having the connection’s resource object already associated with the global transaction. The application server must ensure that the <code>XAResource</code> object in use is associated with the transaction. This is done by invoking the <methodname>Transaction.enlistResource</methodname> method.
+		</para>
+		<para>
+			If a server side transactional application retains its database connection across multiple client requests, the application server must ensure that before dispatching a client request to the application thread, the resource is enlisted with the application’s current transaction context. This implies that the application server manages the connection resource usage status across multiple method invocations.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Resource_sharing">
+		<title>Resource sharing</title>
+		<para>
+			When the same transactional resource is used to interleave multiple transactions, it is the responsibility of the application server to ensure that only one transaction is enlisted with the resource at any given time. To initiate the transaction commit process, the transaction manager is allowed to use any of the resource objects connected to the same resource manager instance. The resource object used for the two-phase commit protocol does not need to have been involved with the transaction being completed.
+		</para>
+		<para>
+			The resource adapter must be able to handle multiple threads invoking the <interfacename>XAResource</interfacename> methods concurrently for transaction commit processing. For example, with reference to the code below, suppose we have a transactional resource <code>r1</code>. Global transaction <code>xid1</code> was started and ended with <code>r1</code>. Then a different global transaction <code>xid2</code> is associated with <code>r1</code>. In the meanwhile, the transaction manager may start the two phase commit process for <code>xid1</code> using <code>r1</code> or any other transactional resource connected to the same resource manager. The resource adapter needs to allow the commit process to be executed while the resource is currently associated with a different global transaction.
+		</para>
+<screen>
+XAResource xares = r1.getXAResource();
+	
+xares.start(xid1); // associate xid1 to the connection
+	
+..
+xares.end(xid1); // disassociate xid1 to the connection
+..
+xares.start(xid2); // associate xid2 to the connection
+..
+// While the connection is associated with xid2,
+// the TM starts the commit process for xid1
+status = xares.prepare(xid1);
+..
+xares.commit(xid1, false);
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Local_and_global_transactions">
+		<title>Local and global transactions</title>
+		<para>
+			The resource adapter must support the usage of both local and global transactions within the same transactional connection. Local transactions are transactions that are started and coordinated by the resource manager internally. The <interfacename>XAResource</interfacename> interface is not used for local transactions. When using the same connection to perform both local and global transactions, the following rules apply:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The local transaction must be committed (or rolled back) before starting a global transaction in the connection.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The global transaction must be disassociated from the connection before any local transaction is started.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Transaction_timeouts">
+		<title>Transaction timeouts</title>
+		<para>
+			Timeout values can be associated with transactions in order to control their lifetime. If a transaction has not terminated (committed or rolled back) before the timeout value elapses, the transaction system will automatically roll it back. The <interfacename>XAResource</interfacename> interface supports a operation, which allows the timeout associated with the current transaction to be propagated to the resource manager and if supported, will override any default timeout associated with the resource manager. This can be useful when long running transactions may have lifetimes that would exceed the default and in which case, if the timeout were not altered, the resource manager would rollback before the transaction terminated and subsequently cause the transaction to roll back as well.
+		</para>
+		<para>
+			If no timeout value is explicitly set for a transaction, or a value of 0 is specified, then an implementation specific default value may be used. In the case of JBossTS, how this default value is set depends upon which JTA implementation you are using.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator.defaultTimeout</property> property value and give a timeout in seconds. The default value is 60 seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property value and give a timeout in seconds. The default value is 0, for instance, transactions do not timeout.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Unfortunately there are situations where imposing the same timeout as the transaction on a resource manager may not be appropriate. For example, if the system administrator wishes to have control over the lifetimes on resource managers and does not want to (or cannot) allow that control to be passed to some external entity. At present JBossTS supports an all-or-nothing approach to whether or not <methodname>setTransactionTimeout</methodname> is called on <interfacename>XAResource</interfacename> instances.
+		</para>
+		<para>
+			If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> property is set to true (the default) then it will be called on all instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</classname> can be used.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Dynamic_Registration">
+		<title>Dynamic Registration</title>
+		<para>
+			Dynamic registration is not supported in <interfacename>XAResource</interfacename> because of the following reasons:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					In the Java component-based application server environment, connections to the resource manager are acquired dynamically when the application explicitly requests a connection. These resources are enlisted with the transaction manager on a needed basis.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					If a resource manager requires a way to dynamically register its work to the global transaction, the implementation can be done at the resource adapter level via a private interface between the resource adapter and the underlying resource manager.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,151 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Transaction_Recovery">
+	<title>Transaction Recovery</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transaction_Recovery-Failure_recovery">
+		<title>Failure recovery</title>
+		<para>
+			During recovery, the Transaction Manager needs to be able to communicate to all resource managers that are in use by the applications in the system. For each resource manager, the Transaction Manager uses the <methodname>XAResource.recover</methodname> method to retrieve the list of transactions that are currently in a prepared or heuristically completed state. Typically, the system administrator configures all transactional resource factories that are used by the applications deployed on the system. An example of such a resource factory is the JDBC <code>XADataSource</code> object, which is a factory for the JDBC <code>XAConnection</code> objects.
+		</para>
+		<para>
+			Because <code>XAResource</code> objects are not persistent across system failures, the Transaction Manager needs to have some way to acquire the <code>XAResource</code> objects that represent the resource managers which might have participated in the transactions prior to the system failure. For example, a Transaction Manager might, through the use of JNDI lookup mechanism, acquire a connection from each of the transactional resource factories, and then obtain the corresponding <code>XAResource</code> object for each connection. The Transaction Manager then invokes the <methodname>XAResource.recover</methodname> method to ask each resource manager to return the transactions that are currently in a prepared or heuristically completed state.
+		</para>
+		<note>
+			<para>
+				When running XA recovery it is necessary to tell JBossTS which types of Xid it can recover. Each Xid that JBossTS creates has a unique node identifier encoded within it and JBossTS will only recover transactions and states that match a specified node identifier. The node identifier to use should be provided to JBossTS via a property that starts with the name <property>com.arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A value of ‘*’ will force JBossTS to recover (and possibly rollback) all transactions irrespective of their node identifier and should be used with caution.
+			</para>
+		</note>
+		<para>
+			If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all <interfacename>XAResource</interfacename> crash recovery automatically. Otherwise one of the following recovery mechanisms will be used:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					If the <code>XAResource</code> is serializable, then the serialized form will be saved during transaction commitment, and used during recovery. It is assumed that the recreated <code>XAResource</code> is valid and can be used to drive recovery on the associated database.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</interfacename>, <interfacename>com.arjuna.ats.jta.recovery.XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats.jta.recovery.XARecoveryResource</interfacename> interfaces are used. These are documented in the JDBC chapters on failure recovery.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. Users are encouraged to move to his new interface.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transaction_Recovery-Recovering_XAConnections">
+		<title>Recovering XAConnections</title>
+		<para>
+			When recovering from failures, JBossJTA requires the ability to reconnect to databases that were in use prior to the failures in order to resolve any outstanding transactions. Most connection information will be saved by the transaction service during its normal execution, and can be used during recovery to recreate the connection. However, it is possible that not all such information will have been saved prior to a failure (for example, a failure occurs before such information can be saved, but after the database connection is used). In order to recreate those connections it is necessary to provide implementations of the following JBossJTA interface <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</interfacename>, one for each database that may be used by an application.
+		</para>
+		<note>
+			<para>
+				If using the transactional JDBC 2.0 driver provided with JBossJTA, then no additional work is necessary in order to ensure that recovery occurs.
+			</para>
+		</note>
+		<para>
+			To inform the recovery system about each of the <code>XAResourceRecovery</code> instances, it is necessary to specify their class names through property variables. Any property variable found in the properties file, or registered at runtime, which starts with the name <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property> will be assumed to represent one of these instances, and its value should be the class name. For example:
+		</para>
+<screen>
+com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery
+</screen>
+		<para>
+			Additional information that will be passed to the instance when it is created may be specified after a semicolon:
+		</para>
+<screen>
+com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;myData=hello
+</screen>
+		<note>
+			<para>
+				These properties need to go into the JTA section of the property file.
+			</para>
+		</note>
+		<para>
+			Any errors will be reported during recovery.
+		</para>
+<screen>
+public interface XAResourceRecovery
+{
+	public XAResource getXAResource () throws SQLException;
+	
+	public boolean initialise (String p);
+	
+	public boolean hasMoreResources ();
+};
+</screen>
+		<para>
+			Each method should return the following information:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>initialise</methodname>: once the instance has been created, any additional information which occurred on the property value (anything found after the first semi-colon) will be passed to the object. The object can then use this information in an implementation specific manner to initialise itself, for example.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</code> implementation may provide multiple <code>XAResource</code> instances. Before any call to <methodname>getXAResource</methodname> is made, <methodname>hasMoreResources</methodname> is called to determine whether there are any further connections to be obtained. If this returns false, <methodname>getXAResource</methodname> will not be called again during this recovery sweep and the instance will not be used further until the next recovery scan.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>getXAResource</methodname>: returns an instance of the <code>XAResource</code> object. How this is created (and how the parameters to its constructors are obtained) is up to the <code>XAResourceRecovery</code> implementation. The parameters to the constructors of this class should be similar to those used when creating the initial driver or data source, and should obviously be sufficient to create new <code>XAResources</code> that can be used to drive recovery.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				If you want your <code>XAResourceRecovery</code> instance to be called during each sweep of the recovery manager then you should ensure that once <methodname>hasMoreResources</methodname> returns false to indicate the end of work for the current scan it then returns true for the next recovery scan.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transaction_Recovery-Shipped_XAResourceRecovery_implementations">
+		<title>Shipped XAResourceRecovery implementations</title>
+		<para>
+			Recovery of <interfacename>XA</interfacename> datasources can sometimes be implementation dependant, requiring developers to provide their own <interfacename>XAResourceRecovery</interfacename> instances. However, JBossTS ships with several out-of-the-box implementations that may be useful.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</interfacename>: this expects an XML property file to be specified upon creation and from which it will read the database URL, username and password. For example:
+				</para>
+<screen>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	
+&lt;transaction-service&gt;
+	&lt;properties name="jdbc" type="system"&gt;
+		&lt;property name="DatabaseURL" value="jdbc:oracle:thin:@hostname:1521:sid"/&gt;
+		&lt;property name="UserName"    value="username"/&gt;
+		&lt;property name="Password"    value="password"/&gt;
+	&lt;/properties&gt;
+&lt;/transaction-service&gt;
+</screen>
+			</listitem>
+			<listitem>
+				<para>
+					<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</interfacename>: this recovery implementation should work on any datasource that is exposed via JNDI. It expects an XML property file to be specified upon creation and from which it will read the database JNDI name, username and password. For example:
+				</para>
+<screen>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	
+&lt;transaction-service&gt;
+	&lt;properties name="jdbc" type="system"&gt;
+		&lt;property name="DatabaseJNDIName" value="java:ExampleDS"/&gt;
+		&lt;property name="UserName"         value="username"/&gt;
+		&lt;property name="Password"         value="password"/&gt;
+	&lt;/properties&gt;
+&lt;/transaction-service&gt;
+</screen>
+			</listitem>
+		</itemizedlist>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,187 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Transactions">
+	<title>Transactions</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transactions-The_API">
+		<title>The API</title>
+		<para>
+			The Java Transaction API consists of three elements: a high-level application transaction demarcation interface, a high-level transaction manager interface intended for application server, and a standard Java mapping of the X/Open XA protocol intended for transactional resource manager. All of the JTA classes and interfaces occur within the <package>javax.transaction</package> package, and the corresponding JBossJTA implementations within the <package>com.arjuna.ats.jta</package> package.
+		</para>
+		<important>
+			<para>
+				Each Xid that JBossTS creates must have a unique node identifier encoded within it and JBossTS will only recover transactions and states that match a specified node identifier. The node identifier to use should be provided to JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> property. You must make sure this value is unique across your JBossTS instances. If you do not provide a value, then JBossTS will fabricate one and report the value via the logging infrastructure. The contents of this should be alphanumeric.
+			</para>
+		</important>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-UserTransaction">
+			<title>UserTransaction</title>
+			<para>
+				The <interfacename>UserTransaction</interfacename> interface provides applications with the ability to control transaction boundaries. It has methods for beginning, committing, and rolling back top-level transactions: nested transactions are not supported, and begin throws the <code>NotSupportedException</code> when the calling thread is already associated with a transaction. <interfacename>UserTransaction</interfacename> automatically associates newly created transactions with the invoking thread.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				In JBossJTA, UserTransactions can be obtained from the static <methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</methodname> method.
+			</para>
+		</note>
+		<para>
+			In order to select the local JTA implementation it is necessary to perform the following steps:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</property> is set to <property>com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</property>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</property> is set to <property>com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</property>.
+				</para>
+			</listitem>
+		</orderedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-TransactionManager">
+			<title>TransactionManager</title>
+			<para>
+				The <interfacename>TransactionManager</interfacename> interface allows the application server to control transaction boundaries on behalf of the application being managed.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				In JBossJTA, transaction manager implementations can be obtained from the static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</methodname> method.
+			</para>
+		</note>
+		<para>
+			The Transaction Manager maintains the transaction context association with threads as part of its internal data structure. A thread’s transaction context is either null or it refers to a specific global transaction. Multiple threads may be associated with the same global transaction. As noted above, nested transactions are not supported.
+		</para>
+		<para>
+			Each transaction context is encapsulated by a Transaction object, which can be used to perform operations which are specific to the target transaction, regardless of the calling thread’s transaction context.
+		</para>
+		<para>
+			The <methodname>begin</methodname> method of <interfacename>TransactionManager</interfacename> starts a new top-level transaction and associates the transaction context with the calling thread. If the calling thread is already associated with a transaction then it throws the <code>NotSupportedException</code>.
+		</para>
+		<para>
+			The <methodname>getTransaction</methodname> method returns the Transaction object that represents the transaction context currently associated with the calling thread. This object can be used to perform various operations on the target transaction, described later.
+		</para>
+		<para>
+			The commit method is used to complete the transaction currently associated with the calling thread. After it returns, the calling thread is associated with no transaction. If commit is called when the thread is not associated with any transaction context, the TM throws an exception. In some implementation, the commit operation is restricted to the transaction originator only. If the calling thread is not allowed to commit the transaction, the TM throws an exception. JBossJTA does not currently impose any restriction on the ability of threads to terminate transactions.
+		</para>
+		<para>
+			The <methodname>rollback</methodname> method is used to rollback the transaction associated with the current thread. After the <methodname>rollback</methodname> method completes, the thread is associated with no transaction.
+		</para>
+		<note>
+			<para>
+				In a multi-threaded environment it is possible that multiple threads are active within the same transaction. If checked transaction semantics have been disabled, or the transaction times out, then it is possible for a transaction to be terminated by a thread other than the one that created it. In this case, it is often important that this information is communicated to the creator. JBossTS does this during commit or rollback by throwing <code>IllegalStateException</code>.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Suspending_and_resuming_a_transaction">
+			<title>Suspending and resuming a transaction</title>
+			<para>
+				The JTA supports the concept of a thread temporarily suspending and resuming transactions to enable it to perform non-transactional work. The suspend method is called to temporarily suspend the current transaction that is associated with the calling thread, i.e., so that the thread is no longer operating within its scope. If the thread is not associated with any transaction, a null object reference is returned; otherwise, a valid <code>Transaction</code> object is returned. The <code>Transaction</code> object can later be passed to the resume method to reinstate the transaction context.
+			</para>
+		</formalpara>
+		<para>
+			The <methodname>resume</methodname> method associates the specified transaction context with the calling thread. If the transaction specified is a valid transaction, the transaction context is associated with the calling thread; otherwise, the thread is associated with no transaction.
+		</para>
+		<note>
+			<para>
+				If <methodname>resume</methodname> is invoked when the calling thread is already associated with another transaction, the Transaction Manager throws the <code>IllegalStateException</code> exception.
+			</para>
+		</note>
+<screen>
+Transaction tobj = TransactionManager.suspend();
+	..
+TransactionManager.resume(tobj);
+</screen>
+		<note>
+			<para>
+				Some Transaction Manager implementations allow a suspended transaction to be resumed by a different thread. This feature is not required by JTA, but JBossJTA does support this.
+			</para>
+		</note>
+		<para>
+			When a transaction is suspended the application server must ensure that the resources in use by the application are no longer registered with the suspended transaction. When a resource is de-listed this triggers the Transaction Manager to inform the resource manager to disassociate the transaction from the specified resource object. When the application’s transaction context is resumed, the application server must ensure that the resources in use by the application are again enlisted with the transaction. Enlisting a resource as a result of resuming a transaction triggers the Transaction Manager to inform the resource manager to re-associate the resource object with the resumed transaction.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-The_Transaction_interface">
+			<title>The Transaction interface</title>
+			<para>
+				The <interfacename>Transaction</interfacename> interface allows operations to be performed on the transaction associated with the target object. Every top-level transaction is associated with one <code>Transaction</code> object when the transaction is created. The <code>Transaction</code> object can be used to:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Enlist the transactional resources in use by the application.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Register for transaction synchronization call backs.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Commit or rollback the transaction.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Obtain the status of the transaction.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The <methodname>commit</methodname> and <methodname>rollback</methodname> methods allow the target object to be committed or rolled back. The calling thread is not required to have the same transaction associated with the thread. If the calling thread is not allowed to commit the transaction, the transaction manager throws an exception. At present JBossJTA does not impose restrictions on threads terminating transactions.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Resource_enlistment">
+			<title>Resource enlistment</title>
+			<para>
+				Transactional resources such as database connections are typically managed by the application server in conjunction with some resource adapter and optionally with connection pooling optimization. In order for an external transaction manager to co-ordinate transactional work performed by the resource managers, the application server must enlist and de-list the resources used in the transaction. These resources (participants) are enlisted with the transaction so that they can be informed when the transaction terminates, for example, are driven through the two-phase commit protocol.
+			</para>
+		</formalpara>
+		<para>
+			As stated previously, the JTA is much more closely integrated with the XA concept of resources than the arbitrary objects. For each resource in-use by the application, the application server invokes the <methodname>enlistResource</methodname> method with an <code>XAResource</code> object which identifies the resource in use. See for details on how the implementation of the <code>XAResource</code> can affect recovery in the event of a failure.
+		</para>
+		<para>
+			The enlistment request results in the transaction manager informing the resource manager to start associating the transaction with the work performed through the corresponding resource. The transaction manager is responsible for passing the appropriate flag in its <methodname>XAResource.start</methodname> method call to the resource manager.
+		</para>
+		<para>
+			The <methodname>delistResource</methodname> method is used to disassociate the specified resource from the transaction context in the target object. The application server invokes the method with the two parameters: the <code>XAResource</code> object that represents the resource, and a flag to indicate whether the operation is due to the transaction being suspended (TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource release by the application (TMSUCCESS).
+		</para>
+		<para>
+			The de-list request results in the transaction manager informing the resource manager to end the association of the transaction with the target <code>XAResource</code>. The flag value allows the application server to indicate whether it intends to come back to the same resource whereby the resource states must be kept intact. The transaction manager passes the appropriate flag value in its <methodname>XAResource.end</methodname> method call to the underlying resource manager.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Transaction_synchronization">
+			<title>Transaction synchronization</title>
+			<para>
+				Transaction synchronization allows the application server to be notified before and after the transaction completes. For each transaction started, the application server may optionally register a Synchronization call back object to be invoked by the transaction manager:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The <methodname>beforeCompletion</methodname> method is called prior to the start of the two-phase transaction complete process. This call is executed in the same transaction context of the caller who initiates the <methodname>TransactionManager.commit</methodname> or the call is executed with no transaction context if <methodname>Transaction.commit</methodname> is used.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The <methodname>afterCompletion</methodname> method is called after the transaction has completed. The status of the transaction is supplied in the parameter. This method is executed without a transaction context.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Transaction_equality">
+			<title>Transaction equality</title>
+			<para>
+				The transaction manager implements the Transaction object’s equals method to allow comparison between the target object and another Transaction object. The equals method should return true if the target object and the parameter object both refer to the same global transaction.
+			</para>
+		</formalpara>
+<screen>
+Transaction txObj = TransactionManager.getTransaction();
+Transaction someOtherTxObj = ..
+	..
+	
+boolean isSame = txObj.equals(someOtherTxObj);
+</screen>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,91 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Using_JBossJTA_in_Application_Servers">
+	<title>Using JBossJTA in Application Servers</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Using_JBossJTA_in_Application_Servers-JBoss_Application_Server">
+		<title>JBoss Application Server</title>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-Service_Configuration">
+			<title>Service Configuration</title>
+			<para>
+				The JBoss Transaction Service is configured primarily via the XML files stored in the etc directory, but when run as a JBOSS service there are a number of configurable attributes available. They are as follows:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					TransactionTimeout – The default transaction timeout to be used for new transactions. Specified as an integer in seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					StatisticsEnabled – This determines whether or not the transaction service should gather statistical information. This information can then be viewed using the PerformanceStatistics MBean. Specified as a Boolean. The default is to not gather this information.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					PropagateFullContext – This determines whether a full transactional context is propagated by context importer/exporter. If set to false only the current transaction context is propagated. If set to true the full transaction context (including parent transactions) is propagated.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			These attributes are specified as MBean attributes in the jboss-service.xml file located in the server/all/conf directory, for example:
+		</para>
+<screen>
+&lt;mbean code="com.arjuna.ats.jbossatx.jts.TransactionManagerService" name="jboss:service=TransactionManager"&gt;
+		
+&lt;attribute name="TransactionTimeout"&gt;300&lt;/attribute&gt;
+&lt;attribute name="StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;
+		
+&lt;/mbean&gt;
+</screen>
+		<para>
+			The transaction service is configurable also via the standard JBoss Transaction Service property files. These are located in the JBossTS install location under the etc sub-directory.
+		</para>
+		<para>
+			These files can be edited manually or through JMX. Each property file is exposed via an object with the name <code>com.arjuna.ts.properties</code> and an attribute of module where module is equal to the name of the module to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</code>.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-Logging">
+			<title>Logging</title>
+			<para>
+				In order to make JBossTS logging semantically consistent with JBossAS, the TransactionManagerService modifies the level of some log messages. This is achieved by overriding the value of the <property>com.arjuna.common.util.logger</property> property given in the <filename>jbossjta-properties.xml</filename> file. Therefore, the value of this property will have no effect on the logging behaviour when running embedded in JBossAS. By forcing use of the log4j_releveler logger, the TransactionManagerService causes all INFO level messages in the transaction code to be modified to behave as DEBUG messages. Therefore, these messages will not appear in log files if the filter level is INFO. All other log messages behave as normal.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-The_services">
+			<title>The services</title>
+			<para>
+				There is currently one service offered by the JBOSS integration called TransactionManagerService. Here we shall discuss what this service does.
+			</para>
+		</formalpara>
+		<para>
+			The transaction manager service’s main purpose is to ensure the recovery manager is started. It also binds the JBossTS JTA transaction manager to java:/TransactionManager name with the JNDI provider. This service depends upon the existence of the CORBA ORB Service and it must be using JacORB as the underlying ORB implementation.
+		</para>
+		<para>
+			There are two instances of this service:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					distributed: this uses the JTS enabled transaction manager implementation and hence supports distributed transactions and recovery. To configure this use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</classname> class. This is the default configuration.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					local: this uses the purely local JTA implementation. To configure this use the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</classname> class.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-Ensuring_Transactional_Context_is_Propagated_to_the_Server">
+			<title>Ensuring Transactional Context is Propagated to the Server</title>
+			<para>
+				It is possible to coordinate transactions from a coordinator which is not located within the JBoss server (e.g. using transactions created by an external OTS server). To ensure the transaction context is propagated via JRMP invocations to the server, the transaction propagation context factory needs to be explicitly set for the JRMP invoker proxy. This is done as follows:
+			</para>
+		</formalpara>
+<screen>
+JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts.PropagationContextManager() );
+</screen>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/An_Introduction_to_the_JTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/An_Introduction_to_the_JTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/An_Introduction_to_the_JTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,111 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr ""
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 00:05+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Configuring_JBossJTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Configuring_JBossJTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Configuring_JBossJTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,135 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr ""
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Examples.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Examples.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Examples.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,470 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/JBoss_Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/JDBC_and_Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/JDBC_and_Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/JDBC_and_Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,750 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/The_Resource_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/The_Resource_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/The_Resource_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,662 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transaction_Recovery.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transaction_Recovery.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transaction_Recovery.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,472 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Using_JBossJTA_in_Application_Servers.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Using_JBossJTA_in_Application_Servers.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/es-ES/Using_JBossJTA_in_Application_Servers.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,208 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/An_Introduction_to_the_JTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/An_Introduction_to_the_JTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/An_Introduction_to_the_JTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,111 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr ""
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 00:05+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Configuring_JBossJTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Configuring_JBossJTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Configuring_JBossJTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,135 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr ""
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Examples.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Examples.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Examples.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,470 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/JBoss_Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/JDBC_and_Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/JDBC_and_Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/JDBC_and_Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,750 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/The_Resource_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/The_Resource_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/The_Resource_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,662 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transaction_Recovery.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transaction_Recovery.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transaction_Recovery.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,472 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Using_JBossJTA_in_Application_Servers.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Using_JBossJTA_in_Application_Servers.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/fr-FR/Using_JBossJTA_in_Application_Servers.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,208 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/An_Introduction_to_the_JTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/An_Introduction_to_the_JTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/An_Introduction_to_the_JTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,146 @@
+# translation of An_Introduction_to_the_JTA.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: An_Introduction_to_the_JTA\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-11 11:48+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr "JTA について"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr "Java トランザクション API"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+"多くのトランザクション基準で指定されているインターフェイスは、アプリケーショ"
+"ンプログラマーにとって低レベルであるものがほとんどです。そのため、Sun "
+"Microsystems は分散トランザクションアプリケーションの開発をサポートするより高"
+"いレベルのインターフェイスを指定しています。しかし、Sun が指定するインター"
+"フェイスも十分なレベルではないため、プログラマーはトランザクションアプリケー"
+"ションの状態管理や並行性などに注意する必要があります。また、これらのインター"
+"フェイスはアプリケーション向けであるため、その他の API が対応できる一般的なリ"
+"ソースではなく、XA リソースの統合能力が必要となります。"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+"[JTA99] の通り、分散トランザクションサービスには、通常複数の参加者が関与しま"
+"す:"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+"アプリケーションサーバー:トランザクション状態管理を含むアプリケーション実行"
+"時環境をサポートするために必要なインフラストラクチャを提供します(例:EJB "
+"サーバー)。"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+"トランザクションマネージャ:トランザクション区分、トランザクションリソース管"
+"理、同期化、トランザクションコンテキスト伝搬をサポートするために必要なサービ"
+"スおよび管理機能を提供します。"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+"リソースマネージャ:(リソースアダプタを介する<footnote> <para> リソースアダプ"
+"タは、Resource Manager に接続するためアプリケーションサーバーまたはクライアン"
+"トによって使用されます。リレーショナルデータベースに接続するため使用される "
+"JDBC ドライバが、リソースアダプタの一例です。</para> </footnote>) は、リソー"
+"スへアクセスできるアプリケーションを提供します。リソースマネージャは、トラン"
+"ザクションマネージャが使用するトランザクションリソースインターフェイスを実装"
+"することで分散トランザクションに参加し、トランザクションの関連付け、トランザ"
+"クションの完了やリカバリについて通信します。"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+"通信リソースマネージャ (CRM):トランザクションコンテキストの伝搬や、着信およ"
+"び送信要求に対するトランザクションサービスへのアクセスをサポートします。"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+"トランザクションマネージャの観点では、実際のトランザクションサービスの実装を"
+"公開する必要はありません。トランザクションサービスのユーザーによるトランザク"
+"ション区分、リソース参加、同期化、回復処理を実現するため、ハイレベルなイン"
+"ターフェイスのみ定義する必要があります。JTA は、トランザクションアプリケー"
+"ションがトランザクション境界を区別できるようにするハイレベルなアプリケーショ"
+"ンインターフェイスで、X/Open XA プロトコルのマッピングも含んでいます。"
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr "JBossJTA が提供する JTA のサポートは、1.0.1 の仕様に準拠しています。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 10:34+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 10:34+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat ドキュメンテーショングループ"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,50 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-17 15:43+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr "JBoss トランザクション JTA プログラマーガイド"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr "JBoss Enterprise Application Platform 4.3 向け"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+"本文書は、プログラマーの観点から見たトランザクション JTA について説明していま"
+"す。"
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr "ロゴ"
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Configuring_JBossJTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Configuring_JBossJTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Configuring_JBossJTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,144 @@
+# translation of Configuring_JBossJTA.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Configuring_JBossJTA\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-01 10:53+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr "JBossJTA の設定"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr "設定オプション"
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+"設定オプションは以下の表の通りです。デフォルト値は斜字体で示されています。詳"
+"細は、関連セクション欄の記載を参照してください。"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr "JBossJTA 設定オプション"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr "設定名"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr "可能な値"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr "関連セクション"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr "com.arjuna.ats.jta.supportSubtransactions"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr "YES/NO"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr "com.arjuna.ats.jta.jtaTMImplementation"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr "com.arjuna.ats.jta.jtaUTImplementation"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr "com.arjuna.ats.jta.xaBackoffPeriod"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr "com.arjuna.ats.jdbc.isolationLevel"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr "JDBC 分離レベルがサポートされる値"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr "true/false"
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr "第 3 章"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Examples.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Examples.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Examples.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,826 @@
+# translation of Examples.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Examples\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-11 11:52+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr "用例"
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr "JDBC の例"
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+"次のコードは前に説明した多くのポイントを表しています(注意:簡素化するため、"
+"エラー確認コードの多くは省略されています)。この例は、JBossTS で提供されるト"
+"ランザクション JDBC ドライバを使用することを前提としています。設定方法やドラ"
+"イバの使用方法の詳細は、前の章をご覧ください。"
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr "障害リカバリの例"
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+"このクラスは、<code>XAResources</code> の <interfacename>XAResourceRecovery</"
+"interfacename> を実装します。setParameters で提供されるパラメータは、作成後に"
+"クラスを初期化するために必要な任意の情報を含むことができます。このインスタン"
+"スでは、db 接続の情報が指定されるプロパティファイルの名前と、このファイルが情"
+"報を格納する接続数(; で区切られる)が含まれています。"
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+"これは、<code>XAResourceRecovery</code> インプリメンタで実現できる例の 1 つで"
+"す。この実装はプロパティファイルを使用しますが、そのプロパティファイルはアプ"
+"リケーションの実行中に使用される接続を再度作成するために必要な情報を格納する"
+"ことを前提とします。そのため、接続に対してリカバリを実行することができます。"
+"ユーザー名やパスワードなどの情報を生のテキスト形式で表示することは、セキュリ"
+"ティーホールを生み出すことになるため推奨しません。"
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+"プロパティファイルに指定される db パラメータは次のフォーマットであることを仮"
+"定します:"
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr "DB_x_DatabaseURL="
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr "DB_x_DatabaseUser="
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr "DB_x_DatabasePassword="
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr "DB_x_DatabaseDynamicClass="
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr "x は接続情報の数に置き換えます。"
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr "読みやすくするため、エラー処理コードの一部は省略されています。"
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""
+"<classname>com.arjuna.ats.internal.jdbc.recovery.JDBC2RecoveryConnection</"
+"classname> クラスを使用すると、初期接続の作成に使用されたパラメータを使用して"
+"データベースへの新しい接続を作成することができます。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/JBoss_Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/JDBC_and_Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/JDBC_and_Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/JDBC_and_Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,978 @@
+# translation of JDBC_and_Transactions.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: JDBC_and_Transactions\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-11 14:54+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr "JDBC とトランザクション"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr "トランザクション JDBC ドライバの使用"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+"JBossJTA は、JDBC 2.0 API を使用してデータベースにアクセスするローカルおよび"
+"分散トランザクションアプリケーションの構成をサポートします。JDBC 2.0 は、トラ"
+"ンザクションの 2 フェーズコミットをサポートし、XA X/Open と似ています。JDBC "
+"2.0 のサポートは、com.arjuna.ats.jdbc パッケージにあります。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+"JDBC 2.0 のサポートは、次のドライバとデータベースによってテスト済みです:"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr "Oracle 8.1.6/8.1.7、9i、10g thin ドライバ"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr "MS SQL Server 2000 ネイティブドライバ"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr "過去に確認されたドライバとデータベースは次の通りです:"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr "Merant Sequelink 5.1 と Oracle 8.1.6"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr "Cloudscape 3.6 と Cloudscape 独自のデータベース"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+"上記のドライバやデータベースは、現在プラットフォームとしてサポートされておら"
+"ず、JBossTS で動作するかは保証できません。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr "トランザクションの管理"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+"JBossJTA は、JDBC 接続で実行された作業を特定のトランザクションに関連付けでき"
+"なければなりません。そのため、暗黙的なトランザクション伝搬や間接的なトランザ"
+"クション管理はアプリケーションによって使用されなければなりません(例:各 "
+"JDBC 接続に対し、JBossJTA は呼び出しスレッドの現トランザクションコンテキスト"
+"を判断できなければなりません)。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr "制限"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+"JDBC データベースとのトランザクション対話が正しく管理されるようにするため、"
+"JDBC の仕様および JBossJTA の制限によって以下が制限されます:"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+"JDBC 2.0 はネストされたトランザクションをサポートしません。サブトランザクショ"
+"ン内で JDBC 接続の使用を試みると、JBossJTA は適切な例外をスローし、その接続で"
+"の作業を許可しません。しかし、ネストされたトランザクションが必要な場合は、"
+"<property>com.arjuna.ats.jta.supportSubtransactions</property> プロパティを "
+"YES に設定します。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr "トランザクションドライバ"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+"JBoss JTA は、トランザクション内で JDBC 接続を取り込むため、すべての対話が発"
+"生するトランザクション JDBC ドライバを提供します。これらのドライバはすべての"
+"呼び出しをインターセプトし、適切なトランザクションへ登録され、適切なトランザ"
+"クションによって実行されるようにします。すべての JDBC ドライバが実行される単"
+"一のトランザクションドライバがありますが、トランザクションのないデータベース"
+"の場合、ACID プロパティは保証されません。このドライバは <code>com.arjuna.ats."
+"jdbc.TransactionalDriver</code> で、<interfacename>java.sql.Driver</"
+"interfacename> インターフェイスを実装します。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr "ロードするドライバ"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+"ドライバは直接インスタンス化され、アプリケーション内で使用されます。例は次の"
+"通りです:"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+"これらのドライバは、Java システムプロパティに追加することで JDBC ドライバマ"
+"ネージャ (<code>java.sql.DriverManager</code>) に登録できます。"
+"<property>jdbc.drivers</property> プロパティには、初期化の際に JDBC ドライバ"
+"によってロードされるドライバクラス名のコンマ区切りのリストが含まれています。"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+"<methodname>Class.forName()</methodname> メソッドを使用してドライバをロードす"
+"ることもできます:"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+"<methodname>Class.forName()</methodname> が呼び出されると、自動的にドライバ"
+"が JDBC ドライバマネージャに登録されます。JDBC ドライバのインスタンスを明示的"
+"に作成することも可能です:"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+"ドライバをロードした後、ドライバを使用して DBMS への接続を確立できます。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr "接続"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+"ここでは、トランザクション JDBC 接続の概念や JBossJTA 内での管理方法、アプリ"
+"ケーション内で使用するための実装について説明します。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr "接続の確立"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+"新しい JDBC ドライバを提供するだけで JBossJTA における JDBC の接続性を維持で"
+"きるため、アプリケーションコードはトランザクションを使用しない場合とあまり変"
+"わりません。通常、アプリケーションプログラマにとって必要なことは、トランザク"
+"ションの開始および終了のみになります。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr "JDBC 2.0"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+"JDBC 2.0 サポートについて説明する前に、プロパティについて説明しなければなりま"
+"せん。設定し、JBossJTA ドライバに渡すことができるプロパティは次の通りです (す"
+"べて <classname>com.arjuna.ats.jdbc.TransactionalDriver</classname> クラスに"
+"あります):"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+"<property>userName</property>: データベースに接続する際に使用するユーザー名。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+"<property>password</property>: データベースに接続するために使用するパスワー"
+"ド。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+"<property>createDb</property>: true に設定された場合、接続の際にドライバが"
+"データベースを作成します。このプロパティをサポートしていない JDBC 2.0 実装も"
+"あります。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+"<property>dynamicClass</property>: JNDI を使用する代わりに、データベースに接"
+"続するためインスタンス化するクラスを指定します。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr "XADataSources"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+"JDBC 2.0 接続は適切な DataSources より作成されます。分散トランザクション内で"
+"参加しなければならない JDBC 2.0 接続は、<code>XADataSources</code> より取得で"
+"きます。よって、JDBC 2.0 ドライバを使用している場合、データベースへの接続が確"
+"立される度に JBossJTA は適切な DataSource を使用します。その後、"
+"<code>XAResources</code> を取得し、JTA インターフェイスより取得した "
+"<code>XAResources</code> をトランザクションへ登録します。JDBC 接続を介した変"
+"更をデータベースがコミットまたはロールバックするためトランザクションが終了す"
+"ると、トランザクションサービスは <code>XAResources</code> を使用します。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+"JBossJTA JDBC 2.0 サポートが <code>XADataSources</code> を取得する方法は 2 つ"
+"ありますが、後の項で説明します。簡素化するため、JDBC 2.0 ドライバはアプリケー"
+"ションによって直接インスタンス化されることを前提としていますので注意してくだ"
+"さい。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr "Java Naming and Directory Interface (JNDI)"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+"JDBC ドライバが実装の詳細を認識しなくても任意の DataSources を使用できるよう"
+"にするため、DataSources は通常 JNDI より取得されます。適切な JNDI 実装で特定"
+"の (XA)DataSource の作成や登録が行えます。また、アプリケーション(または "
+"JDBC ドライバ)は後でバインドしたり使用することができます。JNDI では、アプリ"
+"ケーションは (XA)DataSource を実装クラスのインスタンス (例:<property>com."
+"mydb.myXADataSource</property>) としてではなく、インターフェイスのインスタン"
+"ス (例:<property>javax.sql.XADataSource</property>) としてのみ見なすため、ア"
+"プリケーションはビルド時に拘束されず特定の (XA)DataSource 実装のみを使用でき"
+"ます。 "
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+"<classname>TransactionalDriver</classname> クラスを取得して、JNDI に登録され"
+"た <code>XADataSource</code> を使用するには、<code>XADataSource</code> インス"
+"タンスを作成し、適切な JNDI 実装に保存する必要があります。この詳細について"
+"は、JavaSoft の JDBC 2.0 チュートリアルを参照してください。例は次の通りです。"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+"JNDI では <property>Context.INITIAL_CONTEXT_FACTORY</property> プロパティに使"
+"用する JNDI 実装のタイプを指定します。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+"アプリケーションは適切な接続 URL を JDBC 2.0 ドライバに渡さなければなりませ"
+"ん:"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+"DataSource はトランザクション内で参加し、それに応じて実行されなければならない"
+"ことを <code>ArjunaJDBC2Driver</code> に認識させるため、JNDI のURL の先頭に "
+"jdbc:arjuna: を追加しなければなりません。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr "動的なクラスのインスタンス化"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+"多くの JDBC 2.0 実装が非標準の拡張を仕様に提供する "
+"<interfacename>XADataSources</interfacename> のプロプリエタリな実装を提供して"
+"います。使用している実際の JDBC 2.0 実装からアプリケーションを分離しながら、"
+"拡張を使用できるようにするため、JBossJTA は動的クラスのインスタンス化を使用"
+"し、プロプラエタリ実装の詳細を隠します。また、特定の実装にアプリケーションや"
+"ドライバを拘束することなく <interfacename>XADataSource</interfacename> の実装"
+"は直接インスタンス化されるため、このメカニズムを使用する場合は JNDI を使用す"
+"る必要はありません。よって、JBossJTA は JDBC 2.0 実装に固有するクラスを複数"
+"持っており、これらのクラスは <property>dynamicClass</property> プロパティを適"
+"切に設定するアプリケーションによってランタイム時に選択することができます:"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr "特定データベースの Dynamic Class プロパティ"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr "データベースのタイプ"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr "プロパティ名"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr "Cloudscape 3.6"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr "Sequelink 5.1"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr "Oracle 8.1.6"
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+"前述の通り、JBossTS は現在 Cloudscape や Sequelink を認定ドライバとしてサポー"
+"トしていません。また、ここで説明する直接的なメソッドではなく、JNDI を使用し"
+"て JDBC クラスを取得することを推奨します。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+"アプリケーションは接続を設定する際に <code>TransactionalDriver</code> がイン"
+"スタンス化する動的クラスを指定しなければなりません:"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr "接続の使用"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+"接続が確立されると (<methodname>java.sql.DriverManager.getConnection</"
+"methodname> メソッドなどを使用して)、接続上のすべての操作が JBossJTA によって"
+"監視されます。トランザクション内でトランザクション接続を使用する必要はありま"
+"せん。接続を使用する際にトランザクションが存在しない場合、操作は直接データ"
+"ベース上で実行されます。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr "JDBC はサブトランザクションをサポートしません。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+"接続が適切な時間内に終了しない場合、トランザクションタイムアウトを使用して自"
+"動的にトランザクションを終了することができます。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+"JBossJTA 接続は、複数の異なるトランザクション内で同時に使用することができま"
+"す。例えば、現トランザクションの異なる概念を持つ複数のスレッドが同じ JDBC 接"
+"続を使用することができます。JBossJTA は JDBC 接続内で各トランザクションに対し"
+"て接続プーリングを実行します。そのため、複数のスレッドが JDBC 接続の同じイン"
+"スタンスを使用しても、内部的にはトランザクション毎に異なる接続インスタンスを"
+"使用することができます。アプリケーションレベルの接続上で実行される close 以外"
+"の操作は、このトランザクション固有の接続上でのみ実行できます。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+"JBossJTA は適切なリソースを介して自動的に JDBC ドライバ接続をトランザクション"
+"に登録します。トランザクションが終了すると、このリソースは JDBC ドライバ上で"
+"適切な呼び出しを行い、基礎データベースの変更をコミットまたはロールバックしま"
+"す。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+"JDBC ドライバや接続は、作成後に他の JDBC ドライバや接続と同じように使用できま"
+"す。"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr "接続プーリング"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+"JBossJTA は、接続が使用中である間、各ユーザー名およびパスワードに対してその接"
+"続の単一のインスタンスを維持します。同じ接続に対して後続する要求があった場"
+"合、新しいインスタンスではなく、最初に作成された接続の参照を取得します。接続"
+"の終了を試みることはできますが、すべてのユーザー(トランザクションを含む)が"
+"接続を終了した場合と、close の呼び出しを実行した場合のみ実際に接続が終了しま"
+"す。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr "接続の再使用"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+"JDBC ドライバによっては、トランザクションが終了した後、複数の異なるトランザク"
+"ションに対する接続が再使用できるものがあります。この機能は一般的ではありませ"
+"んが、この機能がないドライバは新しいトランザクションに対して新しい接続を取得"
+"する必要があります。デフォルトでは、JBossJTA トランザクションドライバは常に新"
+"しいトランザクションに対して新しい接続を取得しますが、現在使用されていない既"
+"存の接続がある場合に再使用するよう指定できます。接続の再使用を有効にするに"
+"は、reuseconnection=true オプションを JDBC URL で指定します。例は次の通りで"
+"す。"
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+"jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr "トランザクションの終了"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+"JDBC 接続が登録されたトランザクションが終了すると(アプリケーションプログラマ"
+"による明示的な終了または関連するトランザクションタイムアウトの満了による暗黙"
+"的な終了)、JBossJTA は JDBC ドライバを介してデータベースに変更をコミットまた"
+"はロールバックするよう指示します。この処理はアプリケーションに対して透過的に"
+"行われます。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr "AutoCommit"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+"<code>java.sql.Connection</code> の <code>AutoCommit</code> が JDBC 1.0 に対"
+"して true に設定されている場合、各 SQL ステートメントの実行は個別の最上位トラ"
+"ンザクションとなるため、複数のステートメントをグループ化して単一の OTS トラン"
+"ザクション内で管理することはできなくなります。そのため、JBossJTA は JDBC 1.0 "
+"接続上の <code>AutoCommit</code> を使用前に無効にします。その後、アプリケー"
+"ションによって <code>AutoCommit</code> が true に設定されると、<code>java."
+"sql.SQLException</code> が発生します。"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr "分離レベルの設定"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+"JBossJTA の JDBC ドライバを使用する場合、XA 接続における基礎のトランザクショ"
+"ン分離レベルを設定する必要があります。デフォルトでは、"
+"<code>TRANSACTION_SERIALIZABLE</code> に設定されますが、アプリケーションに応"
+"じて設定を変更することができます。設定を変更するには、<property>com.arjuna."
+"ats.jdbc.isolationLevel</property> プロパティに "
+"<code>TRANSACTION_READ_COMMITTED</code> ã‚„ "
+"<code>TRANSACTION_REPEATABLE_READ</code> など適切な分離レベルをストリング形式"
+"で指定します。"
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""
+"現在、このプロパティは JVM 内に作成されたすべてのXA 接続に対して適応されま"
+"す。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 10:38+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "はじめに"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-16 09:57+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/The_Resource_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/The_Resource_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/The_Resource_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,736 @@
+# translation of The_Resource_Manager.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: The_Resource_Manager\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-11 15:24+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr "テスト"
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr "これはテスト文です"
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr "XAResource インターフェイス"
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+"トランザクションの仕様やシステムによっては、任意のリソースをトランザクションへ登録するために使用する汎用リソースを定義するものもありますが、JTA はより XA に固有しています。<interfacename>javax."
+"transaction.xa.XAResource</interfacename> インターフェイスは "
+"<interfacename>XA</interfacename> インターフェイスの Java マッピングです。<interfacename>XAResource</"
+"interfacename> インターフェイスは、分散トランザクション処理環境における Resource Manager と "
+" Transaction Manager のコントラクトを定義します。リソースマネージャのリソースアダプタは、最上位トランザクションとリソース(例:リレーショナルデータベース)への関連付けをサポートするため、"
+"<interfacename>XAResource</interfacename> インターフェイスを実装します。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr "<interfacename>XAResource</interfacename> インターフェイスは、データベース管理システムなど外部トランザクションマネージャによってトランザクションが制御される環境内で使用されるトランザクションリソースアダプタによってサポートされます。アプリケーションは複数のデータベース接続よりデータにアクセスすることができます。各データベース接続は、基礎のリソースマネージャインスタンスへのプロキシオブジェクトとなる <code>XAResource</code> オブジェクトへ関連付けられます。トランザクションマネージャは、最上位トランザクションに参加する各リソースマネージャに対して <code>XAResource</code> を取得します。start メソッドを使用してトランザクションをリソースに関連付けし、end メソッドを使用してトランザクショãƒ!
 ³ã®ãƒªã‚½ãƒ¼ã‚¹ã¸ã®é–¢é€£ä»˜ã‘を解消します。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+"リソースマネージャは、start 呼び出しと end 呼び出しの間にデータで実行された全ての作業へトランザクションを関連付けます。トランザクションのコミット時に、2 フェーズコミットプロトコルに応じてトランザクションを prepare または commit"
+"、rollback するようトランザクションマネージャがトランザクションリソースマネージャに伝えます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+"Java とより良く統合させるため、<interfacename>XAResource</"
+"interfacename> は次のような点で標準の <interfacename>XA</interfacename> インターフェイスとは異なっています:"
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr "リソース(接続)が取得されると、リソースアダプタによってリソースマネージャの初期化が暗黙的に行われます。<code>xa_open</code> と同等なものはありません。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+"<code>Rmid</code> は引数として渡されません。各 <code>Rmid</code> は個別の"
+" <code>XAResource</code> オブジェクトによって表されます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr "Java はマルチスレッド処理をサポートし、ほとんどのデータベースは非同期操作をサポートしていないため、非同期操作はサポートされません。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr "トランザクションマネージャが <code>XAResource</code> オブジェクトを適切に処理しなかったため返されたエラー値は、<classname>XAException</classname> クラスを介して Java 例外にマップされます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+"制御スレッドの DTP 概念は、<code>XAResource</code> オブジェクトおよび "
+"<code>Connection</code> オブジェクトにアクセスできるすべての Java スレッドをマップします。例えば、異なる 2 つのスレッドは、同じ "
+"<code>XAResource</code> オブジェクトで start および end 操作を実行できます。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr "拡張 XAResource 制御"
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+"デフォルトでは、<code>XAResource</code> オブジェクトが "
+"JTA 準拠のトランザクションサービスに登録されると、2 フェーズコミットプロトコルの間に他の <code>XAResource</code> オブジェクトが呼び出される順番の制御はできません。しかし、JBossTS では <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> と "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename> の 2 つのインターフェイスによってこの順番の制御をサポートしています。どちらかのインターフェイスから "
+"<code>XAResource</code> インスタンスを継承することで、クラスのインスタンスが最初または最後に呼び出されるかを制御します。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr "各インターフェイスタイプの 1 つのインスタンスのみを特定のトランザクションに登録することができます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+"TxCore マニュアルでは、最後のリソースコミットの最適化 "
+"(Last Resource Commit Optimization:LRCO) について説明しました。この最適化では、1 フェーズのみ対応する単一のリソース(prepare をサポートしない)を 2 フェーズに対応する参加者を操作するトランザクションへ参加させることができ、JBossTS の JTA アスペクト内でもサポートされます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+"LRCO を使用するには、<interfacename>XAResource</interfacename> 実装が "
+"<interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> マーカーインターフェイス(メソッドは提供しない)を拡張しなければなりません。Transaction.enlistResource を介してリソースを参加させる際、"
+"JBossTS は各トランザクション内でこのタイプの参加者の単一インスタンスのみが使用されるようにします。リソースはコミットプロトコルの最後に実行され、prepare は呼び出されません。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+"デフォルトでは、"
+"<classname>LastResourceCommitOptimisation</classname> クラスのインスタンスを複数参加させようとすると失敗し、<methodname>Transaction.enlistResource</"
+"methodname> より false が返されます。この動作を変更するには、<property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> を true に設定しますが、参加させる複数の 1 フェーズ対応リソースのSection を読んでから変更するようにしてください。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr "LRCO を分散環境で使用するには、インターポジションのサポートを無効にする必要がありますが、暗黙的なコンテキスト伝搬の使用は可能です。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr "複数の 1 フェーズ対応リソースを参加させる"
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr "Transaction Core 関連の文書で説明した通り、同じトランザクションにおける複数参加者(リソース)間の一貫性(原子性)を保証するため、2 フェーズコミットプロトコルは永続トランザクションログに使用されます。単一の 1 フェーズ対応リソースを処理する場合、前述のように LRCO を利用してリソース間で原子的な結果を実現することが可能です。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr "複数の 1 フェーズ対応リソースが同じトランザクション内に参加する場合も考えられます。同じトランザクション内でレガシーな JMS 実装として稼働しているレガシーなデータベースがその例です。このような場合、prepare 状態(最終結果待ち)にならないため、複数のリソース間でトランザクションの結果の原子性を実現することができません。他のリソース状態を認識することなく、また継続のリソースが異なる選択をした場合でもそれを取り消すことなくトランザクションコーディネータの指示により即座にコミットまたはロールバックします。そのため、データの破損やヒューリスティックな結果が発生することがあります。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr "このような場合、以下のいづれかの方法を実行するよう推奨します:"
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr "補正トランザクション (compensating transactions) のリソースをラップします。詳細は、ウェブサービストランザクションガイドを参照してください。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr "レガシーな実装を 2 フェーズ対応と同等なものに移行する。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr "上記が実行可能でない場合、JBossTS は同じトランザクション内における複数の 1 フェース対応リソースの参加をサポートしません。これを実行するには、最後のリソースコミットの最適化(LRCO)を参照してください。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+"サポートが有効な場合でも、このオプションが有効なっていることを JBossTS が探知すると警告を発行します (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”)。また、複数の 1 フェーズリソースがトランザクション内に参加している場合も警告を発行します (“This is transactionally "
+"unsafe and should not be relied on.”)。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr "リソースマネージャを開く"
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr "X/Open <interfacename>XA</interfacename> インターフェイスでは、トランザクションマネージャが他の xa_ 呼び出しの前にリソースマネージャ (xa_open) を初期化する必要があります。JTA では、リソースマネージャを示すリソースアダプタ内にリソースマネージャの初期化を組み込む必要があります。トランザクションマネージャはリソースマネージャの初期化方法を知る必要はありません。トランザクションマネージャはトランザクションに関連付けられている作業をいつ開始し終了するか、いつトランザクションを完了するかをリソースマネージャに伝えます。リソースアダプタは、リソースマネージャへの接続が確立された際にリソースマネージャを開きます(初期化します)。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr "リソースマネージャを閉じる"
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr "トランザクションリソースが破損すると、リソースアダプタはリソースマネージャを閉じます。リソースアダプタレベルのトランザクションリソースは個別の 2 つのオブジェクトによって構成されます:"
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr "<code>XAResource</code> オブジェクト:使用中リソースへのトランザクションの関連付けをトランザクションマネージャが開始および終了できるようにし、トランザクション終了プロセスのコーディネートを可能にします。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr "接続オブジェクト:アプリケーションが基礎のリソース上で操作を実行できるようにします(例:RDBMS 上の JDBC 操作)。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr "開いたリソースマネージャは、リソースが明示的にリリースされるまで(閉じるまで)開いた状態を維持します。アプリケーションが接続の close メソッドを呼び出すと、リソースアダプタはアプリケーションが保持する接続オブジェクトの参照を無効にし、アプリケーションサーバーに close について通知します。トランザクションマネージャは <methodname>XAResource.end</methodname> メソッドを呼び出し、トランザクションの接続への関連付けを解消します。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr "close の通知により、アプリケーションサーバーは必要なクリーンアップ作業を行い、接続プーリングが有効な場合は物理 XA 接続を再使用できるようにします。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr "制御スレッド"
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr "X/Open <interfacename>XA</interfacename> インターフェイスは、xa の呼び出しに関係するトランザクションの関連付けが同じスレッドコンテキストより呼び出されるよう指定します。メソッドの呼び出し時にアプリケーションスレッドが動的にディスパッチされるオブジェクト指向のコンポーネントベースアプリケーションランタイム環境には、この制御スレッドの要件は適応されません。接続が複数のメソッドの呼び出しに及ぶ場合、異なるスレッドが同じ接続リソースを使用してリソースマネージャにアクセスすることができます。アプリケーションサーバーの実装によっては、異なるスレッドが同じ <code>XAResource</code> オブジェクトに関与することがあります。リソースコンテキストとトランザクションコンテキストは、スレッドコãƒ!
 ³ãƒ†ã‚­ã‚¹ãƒˆã‹ã‚‰ç‹¬ç«‹ã—て操作できます。そのため、異なるスレッドによる start および end メソッドの呼び出しが可能です。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr "アプリケーションサーバーが、複数スレッドによる単一の <code>XAResource</code> オブジェクトの使用やリソースマネージャへ関連付けられた接続の使用を許可する場合、常時 1 つのみのトランザクションコンテキストがリソースに関連付けられるようにするのはアプリケーションサーバーの役目です。そのため、<interfacename>XAResource</interfacename> インターフェイスでは、リソースマネージャはスレッドコンテキストからの 2 フェーズコミットプロトコルをサポートできなければなりません。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr "トランザクションの関連付け"
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+"トランザクションは start メソッドにてトランザクションリソースへ関連付けられ、<methodname>end</"
+"methodname> メソッドにてリソースへの関連付けが解消されます。リソース接続オブジェクトと "
+"<code>XAResource</code> オブジェクトとの関連を内部的に維持するのはリソースアダプタです。接続は必ず単一のトランザクションに関連付けられている状態か、どのトランザクションにも関連付けられていない状態かのいづれかになります。JTA はネストされたトランザクションをサポートしないため、異なるトランザクションに関連付けられた接続で start メソッドが呼び出されるとエラーが発生します。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr "トランザクションマネージャにて同じリソースを使用して複数のトランザクションコンテキストをインターリーブすることができますが、各トランザクションコンテキストスイッチに対して適切に start と end が呼び出されなければなりません。リソースが異なるトランザクションによって使用される度に、そのリソースに関連付けられていた前のトランザクションに対しては end メソッド、現トランザクションコンテキストに対しては start メソッドが呼び出されなければなりません。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr "外部で制御される接続"
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+"トランザクションの状態がアプリケーションサーバーによって管理されるトランザクションアプリケーションは、"
+"トランザクションの関連付けが適切に行われるようにするため、そのリソースもアプリケーションサーバーによって管理されなければなりません。アプリケーションがトランザクションに関連付けられている場合、接続のリソースオブジェクトがグローバルトランザクションに関連付けられていない状態でアプリケーションが接続を介してトランザクション作業を実行するとエラーが発生します。アプリケーションサーバーは、使用中の <code>XAResource</"
+"code> オブジェクトがトランザクションに関連付けられていることを確認しなければなりません。これを実現するには、<methodname>Transaction.enlistResource</methodname> メソッドを呼び出します。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+"サーバーサイドのトランザクションアプリケーションが複数のクライアント要求間でデータベース接続を保持する場合、アプリケーションサーバーはクライアント要求をアプリケーションスレッドにディスパッチする前に、"
+"リソースがアプリケーションの現トランザクションコンテキストに参加していることを確認しなければなりません。これは、アプリケーションサーバーが複数のメソッド呼び出し間で接続リソースの使用状態を管理することを意味します。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr "リソースの共有"
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr "同じトランザクションリソースを使用して複数のトランザクションをインターリーブする場合、アプリケーションサーバーによって常時 1 つのトランザクションのみがリソースに参加するようにします。トランザクションのコミットプロセスを起動するため、トランザクションマネージャは同じリソースマネージャインスタンスに接続するリソースオブジェクトをすべて使用することができます。2 フェーズコミットプロトコルで使用されるリソースオブジェクトは、終了したトランザクションに関与していなくても構いません。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+"リソースアダプタは、トランザクションコミットプロセスで "
+"<interfacename>XAResource</interfacename> メソッドを並行して呼び出す複数のスレッドに対応できなければなりません。例えば下記コードの場合、トランザクションリソース <code>r1</code> を持っていると、グローバルトランザクション <code>xid1</code> は <code>r1</code> で起動し終了します。そして別のグローバルトランザクションである"
+" <code>xid2</code>が "
+"<code>r1</code> に関連付けられます。一方で、トランザクションマネージャは <code>r1</code> または同じリソースマネージャに接続する他のトランザクションリソースを使用して <code>xid1</code> に対し 2 フェーズコミットプロセスを開始します。リソースアダプタは、"
+"リソースが異なるグローバルトランザクションに関連付けられている間、コミットプロセスが実行できるようにしなければなりません。"
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr "ローカルおよびグローバルトランザクション"
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr "リソースアダプタは、同じトランザクション接続内のローカルおよびグローバルトランザクションの使用をサポートしなければなりません。ローカルトランザクションとは、リソースマネージャによって内部で起動およびコーディネートされるトランザクションのことです。<interfacename>XAResource</interfacename> インターフェイスはローカルトランザクションには使用されません。同じ接続を使用してローカルおよびグローバルトランザクションの両方を実行する場合、次のルールが適応されます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr "接続でグローバルトランザクションを開始する前にローカルトランザクションをコミット(またはロールバック)しなければなりません。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr "ローカルトランザクションを開始する前に、グローバルトランザクションの接続への関連付けを解消しなければなりません。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "トランザクションのタイムアウト"
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr "トランザクションの存続期間を制御するため、タイムアウト値をトランザクションに関連付けることができます。タイムアウト値の経過前にトランザクションが終了(コミットまたはロールバック)しない場合、トランザクションシステムは自動的にロールバックを実行します。<interfacename>XAResource</interfacename> インターフェイスは、現トランザクションに関連付けられたタイムアウトをリソースマネージャに伝搬する操作をサポートします。また、サポートされている場合はリソースマネージャに関連付けられたデフォルトのタイムアウトを変更します。長時間実行しているトランザクションの存続期間がデフォルトよりも長い場合、タイムアウトが変更されないとトランザクションが終了する前にリソースマネージャがローãƒ!
 «ãƒãƒƒã‚¯ã™ã‚‹ãŸã‚ã€çµæžœçš„にトランザクションもロールバックすることになります。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr "トランザクションに対してタイムアウト値が明示的に設定されていない場合や値に 0 が指定されている場合、実装固有のデフォルト値が使用されます。JBossTS の場合、設定されるデフォルト値は使用している JTA 実装によって異なります。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+"ローカル JTA: <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> プロパティの値を使用し、秒単位でタイムアウトが指定されます。デフォルト値は 60 秒です。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr "JTS: <property>com.arjuna.ats.jts.defaultTimeout</property> プロパティの値を使用し、秒単位でタイムアウトが指定されます。デフォルト値は 0 で、トランザクションはタイムアウトしません。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+"場合によっては、リソースマネージャのトランザクションと同じタイムアウト値を指定するのは適切でないことがあります。例えば、システム管理者がリソースマネージャの存続期間を制御し、同じ外部エンティティに制御を渡したくない(渡せない)場合などが該当します。現在 JBossTS では、<interfacename>XAResource</interfacename> インスタンスで <methodname>setTransactionTimeout</"
+"methodname> を呼び出すかどうかに関しては、全か無か (オールオアナッシング) の方法を取っています。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+"<property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> プロパティが true に設定されている場合(デフォルト)、すべてのインスタンスで呼び出されます。代わりに、<classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> の <methodname>setXATransactionTimeoutEnabled</"
+"methodname> メソッドも使用できます。"
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr "動的な登録"
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+"以下の理由により、動的な登録は <interfacename>XAResource</"
+"interfacename> でサポートされていません:"
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr "Java コンポーネントベースのアプリケーションサーバー環境では、アプリケーションが明示的に接続を要求すると、リソースマネージャへの接続が動的に取得されます。これらのリソースは必要になるとトランザクションマネージャに参加されます。"
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr "リソースマネージャの作業を動的にグローバルトランザクションに登録する方法が必要な場合、リソースアダプタと基礎のリソースマネージャ間のプライベートインターフェイスを介してリソースアダプタレベルで実装することができます。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transaction_Recovery.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transaction_Recovery.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transaction_Recovery.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,463 @@
+# translation of Transaction_Recovery.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Transaction_Recovery\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-11 15:41+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr "トランザクションのリカバリ"
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr "障害のリカバリ"
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+"リカバリ中、Transaction Manager はシステムのアプリケーションによって使用され"
+"るすべてのリソースマネージャと通信できなければなりません。Transaction "
+"Manager は各リソースマネージャに対して <methodname>XAResource.recover</"
+"methodname> メソッドを使用し、現在準備済みまたはヒューリスティックな終了状態"
+"にあるトランザクションの一覧を読み出します。通常、システムにデプロイされたア"
+"プリケーションが使用するトランザクションリソースファクトリはすべてシステム管"
+"理者が設定します。このようなリソースファクトリの 1 つが、JDBC "
+"<code>XAConnection</code> オブジェクトのファクトリである JDBC "
+"<code>XADataSource</code> オブジェクトです。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+"<code>XAResource</code> オブジェクトはシステム障害全体で永続的ではないため、"
+"システム障害が発生する前にトランザクションに参加していた可能性があるリソース"
+"マネージャを表す <code>XAResource</code> オブジェクトを取得する方法が "
+"Transaction Manager に必要になります。例えば、Transaction Manager は JNDI "
+"ルックアップメカニズムを利用して各トランザクションリソースファクトリより接続"
+"を取得し、各接続に対応する <code>XAResource</code> オブジェクトを取得すること"
+"ができます。その後 Transaction Manager は <methodname>XAResource.recover</"
+"methodname> メソッドを呼び出し、各リソースマネージャに対して現在準備済みまた"
+"はヒューリスティックな終了状態にあるトランザクションを返すよう要求します。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+"XA リカバリを実行する際、JBossTS にリカバリ可能な Xid タイプを伝える必要があ"
+"ります。JBossTS が作成する各 Xid はエンコードされた固有のノード識別子を持って"
+"います。JBossTS は指定のノード識別子と一致するトランザクションや状態のみをリ"
+"カバリします。使用するノード識別子は、名前が <property>com.arjuna.ats.jta."
+"xaRecoveryNode</property> で始まるプロパティを介して JBossTS に提供しなければ"
+"なりません(複数の値を提供できます)。値に「*」を指定すると、JBossTS はノード"
+"識別子に関係なくすべてのトランザクションをリカバリ(場合によってはロールバッ"
+"ク)するため、「*」は注意して使用するようにしてください。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+"JBossJTA JDBC 2.0 ドライバを使用している場合、JBossJTA は自動的にすべての "
+"<interfacename>XAResource</interfacename> クラッシュリカバリを処理します。"
+"JBossJTA JDBC 2.0 ドライバを使用していない場合は、下記のリカバリメカニズムの "
+"1 つが使用されます。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+"<code>XAResource</code> がシリアライズ可能な場合、トランザクションのコミット"
+"中にシリアライズされたものが保存され、リカバリ時に使用されます。再作成された "
+"<code>XAResource</code> は有効で、関連するデータベースのリカバリ実行に使用で"
+"きることが前提となります。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename> インターフェイスや <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> インターフェイス、"
+"<interfacename>com.arjuna.ats.jta.recovery.XARecoveryResource</"
+"interfacename> インターフェイスが使用されます。これらのインターフェイスについ"
+"ては、JDBC 章の障害リカバリに関する文書を参照してください。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+"JBossTS 3.3 では、<interfacename>XAResourceRecovery</interfacename> インター"
+"フェイスが推奨され、<interfacename>XAConnectionRecovery</interfacename> は非"
+"推奨のインターフェイスとなっています。ユーザーは新しいインターフェイスを使用"
+"するようにしてください。"
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr "XAConnections のリカバリ"
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+"障害をリカバリする際、問題のあるトランザクションを解決するため JBossJTA は障"
+"害が発生する前に使用されていたデータベースに再接続できなければなりません。ほ"
+"とんどの接続情報は正常実行中にトランザクションサービスによって保存され、リカ"
+"バリの際に接続を再作成するために使用できます。しかし、障害の前にすべての情報"
+"が保存されていない可能性があります(例えば、データベースを使用した後、情報が"
+"保存される前に障害が発生した場合)。このような接続を再作成するには、JBossJTA "
+"インターフェイスである <interfacename>com.arjuna.ats.jta.recovery."
+"XAResourceRecovery</interfacename> の実装を、アプリケーションによって使用され"
+"るデータベースごとに提供する必要があります。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+"JBossJTA で提供されるトランザクション JDBC 2.0 ドライバを使用する場合、リカバ"
+"リの実行を確実にするための作業は発生しません。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+"各 <code>XAResourceRecovery</code> インスタンスについてリカバリシステムへ通知"
+"するには、プロパティ変数にてインスタンスのクラス名を指定する必要があります。"
+"名前が <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property> で"
+"始まるプロパティファイルのプロパティ変数や実行時に登録されるプロパティ変数"
+"は、<code>XAResourceRecovery</code> インスタンスの 1 つを示すことを前提としま"
+"す。また、その値はクラス名でなければなりません。例は次の通りです。"
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+"インスタンスの作成時に渡される追加情報は、セミコロン (;) の後に指定することが"
+"できます。"
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+"これらのプロパティはプロパティファイルの JTA セクションになければなりません。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr "発生したエラーはリカバリ中に報告されます。"
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr "各メソッドは次の情報を返さなければなりません:"
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+"<methodname>initialise</methodname>: インスタンスが作成されると、プロパティ値"
+"にある追加情報(最初のセミコロンの後にある情報)がオブジェクトに渡されます。"
+"その後、オブジェクトは実装固有の方法でこの情報を使用し、オブジェクト自体を初"
+"期化できます。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+"<methodname>hasMoreResources</methodname>: 各 <code>XAResourceRecovery</"
+"code> 実装は複数の <code>XAResource</code> インスタンスを提供することができま"
+"す。<methodname>getXAResource</methodname> への呼び出しが実行される前、"
+"<methodname>hasMoreResources</methodname> が呼び出され、他に取得する接続がな"
+"いか判断します。false が返された場合、このリカバリスイープの間は "
+"<methodname>getXAResource</methodname> が再度呼び出されず、次のリカバリスキャ"
+"ンまでインスタンスは使用されません。 "
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+"<methodname>getXAResource</methodname>: <code>XAResource</code> オブジェクト"
+"のインスタンスを返します。作成方法(およびコンストラクタへのパラメータの取得"
+"方法)は、<code>XAResourceRecovery</code> の実装により決まります。このクラス"
+"のコンストラクタへのパラメータは、初期ドライバやデータソースの作成時に使用し"
+"したパラメータと同様で、リカバリを実行するために使用する新しい "
+"<code>XAResources</code> を作成できなければなりません。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+"リカバリマネージャの各スイープ時に <code>XAResourceRecovery</code> インスタン"
+"スが呼び出されるようにするには、<methodname>hasMoreResources</methodname> が "
+"false を返して現在のスキャンの終了を示した後、次のリカバリスキャンに対して "
+"true を返すようにしなければなりません。"
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr "同梱の XAResourceRecovery 実装"
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+"<interfacename>XA</interfacename> データソースのリカバリは実装に依存すること"
+"があり、その場合は開発者が独自の <interfacename>XAResourceRecovery</"
+"interfacename> インスタンスを提供する必要があります。しかし、JBossTS はすぐに"
+"使用可能な実装を複数同梱しているため便利です。"
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: 作成時における XML プロパティファイルの指定を前提とし、そのプ"
+"ロパティファイルよりデータベース URL やユーザー名、パスワードを読み込みます。"
+"例は次の通りです。"
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: このリカバリ実装は、JNDI 経由で公開されるすべてのデータソース"
+"上で動作するはずです。作成時に XML プロパティファイルを指定することを前提と"
+"し、そのプロパティファイルよりデータベース JNDI 名やユーザー名、パスワードを"
+"読み込みます。例は次の通りです。"
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,643 @@
+# translation of Transactions.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-15 10:57+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr "トランザクション"
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr "API"
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+"Java トランザクション API は、ハイレベルなアプリケーショントランザクション区"
+"分インターフェイス、アプリケーションサーバー向けのハイレベルなトランザクショ"
+"ンマネージャインターフェイス、トランザクションリソースマネージャ向け X/Open "
+"XA プロトコルの標準 Java マッピングの 3 つの要素から構成されています。JTA ク"
+"ラスとインターフェイスのすべては <package>javax.transaction</package> パッ"
+"ケージ内に存在し、対応する JBossJTA 実装は <package>com.arjuna.ats.jta</"
+"package> パッケージ内に存在します。"
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+"JBossTS が作成する各 Xid は、エンコードされた固有のノード識別子を持たなければ"
+"なりません。また、JBossTS は特定のノード識別子と一致するトランザクションや状"
+"態のみをリカバリします。使用するノード識別子は、<property>com.arjuna.ats."
+"arjuna.xa.nodeIdentifier</property> プロパティより JBossTS に提供しなければな"
+"りません。ノード識別子の値は、JBossTS インスタンス全体で固有になるようにして"
+"ください。値の指定がない場合、JBossTS は 1 つの値を割り当て、その値をロギング"
+"インフラストラクチャを介して報告します。この値には英数字を使用しなければなり"
+"ません。"
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr "UserTransaction"
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+"<interfacename>UserTransaction</interfacename> インターフェイスは、トランザク"
+"ション境界を制御できるアプリケーションを提供します。このインターフェイスは、"
+"トップレベルのトランザクションを開始、コミット、ロールバックするメソッドを"
+"持っています。ネストされたトランザクションはサポートされません。begin (開始) "
+"の場合、呼び出しスレッドが既にトランザクションに関連付けられていると "
+"<code>NotSupportedException</code> をスローします。"
+"<interfacename>UserTransaction</interfacename> は、新しく作成されたトランザク"
+"ションを自動的に呼び出されたスレッドに関連付けます。"
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+"JBossJTA では、静的な <methodname>com.arjuna.ats.jta.UserTransaction."
+"userTransaction()</methodname> メソッドから UserTransactions を取得することが"
+"できます。"
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "ローカルの JTA 実装を選択するには、次の手順を実行する必要があります。"
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+"<property>com.arjuna.ats.jta.jtaTMImplementation</property> プロパティが "
+"<property>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</property> に設定されていることを確認します。"
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+"1. <property>com.arjuna.ats.jta.jtaTMImplementation</property> プロパティが "
+"<property>com.arjuna.ats.internal.jta.transaction.arjunacore."
+"TransactionManagerImple</property> に設定されていることを確認します。"
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr "TransactionManager"
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+"<interfacename>TransactionManager</interfacename> インターフェイスは、管理さ"
+"れているアプリケーションの代わりにアプリケーションサーバーがトランザクション"
+"境界を制御できるようにします。"
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+"JBossJTA では、トランザクションマネージャの実装を静的な <methodname>com."
+"arjuna.ats.jta.TransactionManager.transactionManager</methodname> メソッドよ"
+"り取得することができます。"
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+"Transaction Manager は、内部データ構造の一部としてトランザクションコンテキス"
+"トのスレッドへの関係付けを維持します。スレッドのトランザクションコンテキスト"
+"は、null または特定のグローバルトランザクションを参照します。同じグローバルト"
+"ランザクションに複数のスレッドが関連付けられることもあります。前述の通り、ネ"
+"ストされたトランザクションはサポートされません。"
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+"各トランザクションコンテキストは、呼び出しスレッドのトランザクションコンテキ"
+"ストに関係なく、ターゲットトランザクション固有の操作を実行するため使用可能な"
+"トランザクションオブジェクトによってカプセル化されます。"
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+"<interfacename>TransactionManager</interfacename> の <methodname>begin</"
+"methodname> メソッドは、新しい最上位のトランザクションを開始し、トランザク"
+"ションコンテキストを呼び出しスレッドに関連付けます。呼び出しスレッドが既にト"
+"ランザクションへ関連付けられている場合、<code>NotSupportedException</code> を"
+"スローします。"
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+"<methodname>getTransaction</methodname> メソッドは、現在呼び出しスレッドに関"
+"連付けられているトランザクションコンテキストを表すトランザクションオブジェク"
+"トを返します。このオブジェクトを使用して、ターゲットトランザクションに対して"
+"さまざまな操作を実行できますが、詳細は追って説明します。"
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+"commit メソッドは、現在呼び出しスレッドに関連付けられているトランザクションを"
+"完了するために使用されます。このメソッドが返された後は、呼び出しスレッドに関"
+"連付けられるトランザクションはありません。スレッドがトランザクションコンテキ"
+"ストに関連付けられていない状態で commit が呼び出されると、TM が例外をスローし"
+"ます。実装によっては、commit 操作がトランザクションオリジネータのみに限定され"
+"る場合があります。呼び出しスレッドによるトランザクションの commit が許可され"
+"ていない場合、TM は例外をスローします。現在 JBossJTA は、スレッドによるトラン"
+"ザクションの終了を制限していません。"
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+"<methodname>rollback</methodname> メソッドは、現在のスレッドに関連付けられて"
+"いるトランザクションをロールバックするために使用されます。"
+"<methodname>rollback</methodname> メソッドが完了した後、スレッドに関連付けら"
+"れるトランザクションはありません。"
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+"マルチスレッド環境では、同じトランザクション内で複数のスレッドがアクティブに"
+"なることがあります。チェックされたトランザクションセマンティクスが無効になっ"
+"たり、トランザクションがタイムアウトになった場合、作成したスレッド以外のス"
+"レッドによってトランザクションが終了される場合があります。このような場合、情"
+"報を作成者に伝えることが重要となりますが、JBossTS では、commit または "
+"rollback の際に <code>IllegalStateException</code> がスローされます。"
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr "トランザクションの一時停止および再開"
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+"JTA は、非トランザクション的な処理の実行を可能にするため、スレッドによるトラ"
+"ンザクションの一時停止および再開の概念をサポートしています。呼び出しスレッド"
+"と関連付けられている現トランザクションを一時停止するために suspend メソッドが"
+"呼び出されます (スレッドが範囲内で操作しないようになります)。スレッドに関連"
+"付けられているトランザクションがない場合、null オブジェクト参照が返されます"
+"が、それ以外の場合は有効な <code>Transaction</code> オブジェクトが返されま"
+"す。その後、トランザクションコンテキストを回復するため、<code>Transaction</"
+"code> オブジェクトは resume メソッドに渡されます。"
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+"<methodname>resume</methodname> メソッドは、指定のトランザクションコンテキス"
+"トを呼び出しスレッドへ関連付けます。指定のトランザクションが有効なトランザク"
+"ションである場合、トランザクションコンテキストが呼び出しスレッドへ関連付けら"
+"れますい。有効なトランザクションでない場合は、スレッドはトランザクションへ関"
+"連付けられません。"
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+"呼び出しスレッドが他のトランザクションに関連付けられている状態で "
+"<methodname>resume</methodname> を呼び出すと、Transaction Manager が "
+"<code>IllegalStateException</code> 例外をスローします。"
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+"Transaction Manager によっては、一時停止されたトランザクションを異なるスレッ"
+"ドで再開できます。これは JTA の必須機能ではありませんが、JBossJTA はサポート"
+"しています。"
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+"トランザクションが一時停止された際、アプリケーションサーバーはアプリケーショ"
+"ンによって使用されるリソースが停止されたトランザクションに登録されないように"
+"しなければなりません。リソースの参加が解除されると、Transaction Manager はト"
+"ランザクションと指定のリソースオブジェクトの関連付けを解除するようリソースマ"
+"ネージャに伝えます。アプリケーションのトランザクションコンテキストが再開され"
+"た際、アプリケーションサーバーはアプリケーションによって使用されるリソースを"
+"再度トランザクションに参加させなければなりません。トランザクションの再開に"
+"よってリソースが参加されると、Transaction Manager はリソースオブジェクトと再"
+"開されたトランザクションを再度関連付けるようリソースマネージャに伝えます。"
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr "Transaction インターフェイス"
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+"<interfacename>Transaction</interfacename> インターフェイスは、ターゲットオブ"
+"ジェクトに関連付けられているトランザクション上で操作を実行できるようにしま"
+"す。各最上位トランザクションは、作成されると 1 つの <code>Transaction</code> "
+"オブジェクトに関連付けられます。<code>Transaction</code> オブジェクトは以下の"
+"目的で使用されます:"
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+"アプリケーションによって使用されるトランザクションリソースを参加させる。"
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr "トランザクション同期化のコールバックを登録する。"
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr "トランザクションをコミットまたはロールバックする。"
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr "トランザクションの状態を取得する。"
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+"<methodname>commit</methodname> および <methodname>rollback</methodname> メ"
+"ソッドは、ターゲットオブジェクトをコミットまたはロールバックできるようにしま"
+"す。呼び出しスレッドはスレッドに関連付けられている同じトランザクションを持つ"
+"必要はありません。呼び出しスレッドがトランザクションをコミットできない場合、"
+"トランザクションマネージャは例外をスローします。現在、JBossJTA はスレッドによ"
+"るトランザクションの終了を制限していません。"
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr "リソース参加"
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+"データベース接続などのトランザクションリソースは、通常リソースアダプタやオプ"
+"ションの接続プーリング最適化と共にアプリケーションサーバーによって管理されま"
+"す。外部トランザクションマネージャによってリソースマネージャが実行するトラン"
+"ザクションを調整できるようにするため、アプリケーションサーバーはトランザク"
+"ションで使用するリソースを参加させたり参加を解除しなければなりません。リソー"
+"ス(参加者)はトランザクションへ参加するため、トランザクションが終了すると通"
+"知されます(例:2 フェーズコミットプロトコルを介した場合など)。"
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+"前述の通り、JTA は任意オブジェクトよりも XA 概念のリソースにより深く統合され"
+"ています。アプリケーションサーバーはアプリケーションによって使用される各リ"
+"ソースに対して、使用中のリソースを特定する <code>XAResource</code> を持つ "
+"<methodname>enlistResource</methodname> メソッドを呼び出します。障害が発生し"
+"た時、<code>XAResource</code> の実装がどのようにリカバリに影響するか注意して"
+"ください。"
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+"トランザクションマネージャは参加要求があると、対応するリソースを介して実行さ"
+"れる処理にトランザクションを関連付けるようリソースマネージャに伝えます。トラ"
+"ンザクションマネージャは、リソースマネージャに対する <methodname>XAResource."
+"start</methodname> メソッドの呼び出しで適切なフラグを渡します。"
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+"<methodname>delistResource</methodname> メソッドは、ターゲットオブジェクトの"
+"トランザクションコンテキストと特定リソースとの関連付けを解除するために使用さ"
+"れます。アプリケーションサーバーは、2 つのパラメータを用いてこのメソッドを呼"
+"び出します。この 2 つのパラメータは、リソースを表す <code>XAResource</code> "
+"オブジェクトおよびフラグ (トランザクションが一時停止したことを示す "
+"TMSUSPEND、処理の一部が失敗したことを示す TMFAIL、アプリケーションによる正常"
+"なリソースの開放を示す TMSUCCESS ) になります。"
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+"トランザクションマネージャは参加解除の要求があると、トランザクションとター"
+"ゲット <code>XAResource</code> の関連付けを解除するようリソースマネージャに伝"
+"えます。フラグの値により、アプリケーションサーバーはリソースの状態を維持しな"
+"ければならない同じリソースに戻るかを示すことができます。トランザクションマ"
+"ネージャは、リソースマネージャへの <methodname>XAResource.end</methodname> メ"
+"ソッド呼び出しで適切なフラグ値を渡します。"
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr "トランザクションの同期化"
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+"トランザクションの同期化により、アプリケーションサーバーはトランザクション終"
+"了の前と後に通知を受けます。アプリケーションサーバーはトランザクションマネー"
+"ジャによって呼び出される同期化コールバックオブジェクトを開始した各トランザク"
+"ションに対してオプションで登録することができます:"
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+"<methodname>beforeCompletion</methodname> メソッドは、2 フェーズトランザク"
+"ションの完了処理を開始する前に呼び出されます。この呼び出しは、"
+"<methodname>TransactionManager.commit</methodname> を開始した呼び出し元と同じ"
+"トランザクションコンテキストで実行されます。<methodname>Transaction.commit</"
+"methodname> が使用された場合、呼び出しはトランザクションコンテキストなしで実"
+"行されます。"
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+"<methodname>afterCompletion</methodname> メソッドは、トランザクションが終了し"
+"た後呼び出されます。トランザクションの状態はパラメータ内に提供されます。この"
+"メソッドはトランザクションコンテキストなしで実行されます。"
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr "トランザクションの等価性"
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+"トランザクションマネージャは、Transaction オブジェクトの equals メソッドを実"
+"装し、ターゲットオブジェクトと別の Transaction オブジェクトを比較できるように"
+"します。ターゲットオブジェクトとパラメータオブジェクトの両方が同じグローバル"
+"トランザクションを参照する場合、equals メソッドは true を返します。"
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Using_JBossJTA_in_Application_Servers.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Using_JBossJTA_in_Application_Servers.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/ja-JP/Using_JBossJTA_in_Application_Servers.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,270 @@
+# translation of Using_JBossJTA_in_Application_Servers.po to Japanese
+# Language ja-JP translations for Transactions_JTA_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Junko Ito <junko.ito at rehdat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Using_JBossJTA_in_Application_Servers\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-15 23:42+0000\n"
+"PO-Revision-Date: 2008-09-11 15:30+1000\n"
+"Last-Translator: Junko Ito <junko.ito at rehdat.com>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr "アプリケーションサーバーで JBossJTA を使用する"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr "JBoss Application Server"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr "サービスの設定"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+"JBoss Transaction Service は 主に etc ディレクトリに保存された XML ファイルよ"
+"り設定しますが、JBOSS サービスとして実行する際、設定可能な属性が複数ありま"
+"す。設定可能な属性は次の通りです。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+"TransactionTimeout – 新しいトランザクションに適応するデフォルトのトランザク"
+"ションタイムアウトです。整数値で秒数を指定します。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+"StatisticsEnabled – トランザクションサービスによる統計情報収集の有無を指定し"
+"ます。この情報は PerformanceStatistics MBean を使用して表示できます。ブール変"
+"数で指定します。デフォルトの設定では統計情報は収集しません。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+"PropagateFullContext – 完全なトランザクションコンテキストをテキストインポータ"
+"およびエクスポータで伝搬するかを指定します。false を設定すると、現トランザク"
+"ションコンテキストのみ伝搬されます。true を設定すると、完全なトランザクション"
+"コンテキスト(親トランザクションを含む)が伝搬されます。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+"これらの属性は MBean 属性として server/all/conf ディレクトリにある jboss-"
+"service.xml ファイルに指定されています。例は次の通りです。"
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+"トランザクションサービスは、標準の JBoss Transaction Service プロパティファイ"
+"ルより設定することもできます。これらのファイルは etc サブディレクトリ以下の "
+"JBoss TS インストールの場所にあります。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+"これらのファイルは手作業または JMX で編集できます。<code>com.arjuna.ts."
+"properties</code> という名前のオブジェクトや設定されるモジュール名と同じであ"
+"るモジュールの属性(例:<code>com.arjuna.ts.properties:module=arjuna</code>)"
+"により各プロパティファイルは公開されます。"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr "ロギング"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+"JBossTS のロギングをセマンティック的に JBossAS と整合するため、"
+"TransactionManagerService は一部のログメッセージのレベルを変更します。これ"
+"は、<filename>jbossjta-properties.xml</filename> ファイルにある "
+"<property>com.arjuna.common.util.logger</property> プロパティの値を変更して実"
+"現します。そのため、JBossAS で組み込みとして実行する際、このプロパティの値は"
+"ロギングの動作に影響を与えません。log4j_releveler ロガーの使用を強制すると、"
+"TransactionManagerService によってトランザクションコードの INFO レベルのメッ"
+"セージはすべて DEBUG メッセージとして動作するよう変更されます。そのため、フィ"
+"ルタレベルが INFO の場合、これらのメッセージはログファイルに表示されません。"
+"その他のログメッセージはすべて通常通り動作します。"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr "サービス"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+"現在、TransactionManagerService という 1 つのサービスが JBOSS の統合より提供"
+"されます。ここでは、このサービスについて説明します。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+"トランザクションマネージャサービスの主な目的は、リカバリマネージャを確実に開"
+"始させることです。また、JNDI プロバイダにて JBossTS の JTA トランザクションマ"
+"ネージャを java:/TransactionManager の名前にバインドします。このサービスは "
+"CORBA ORB サービスの存在に依存し、JacORB を基礎の ORB 実装として使用しなけれ"
+"ばなりません。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr "このサービスには 2 つのインスタンスがあります:"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+"分散:JTS が使用可能なトランザクションマネージャ実装を使用するため、分散トラ"
+"ンザクションおよびリカバリをサポートします。<classname>com.arjuna.ats."
+"jbossatx.jts.TransactionManagerService</classname> クラスを使用して設定しま"
+"す。これがデフォルトの設定になります。"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+"ローカル:ローカルの JTA 実装を使用します。<classname>com.arjuna.ats."
+"jbossatx.jta.TransactionManagerService</classname> クラスを使用して設定しま"
+"す。"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr "トランザクションコンテキストがサーバーへ伝搬されるようにする"
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+"JBoss サーバー内に存在しないコーディネータからトランザクションをコーディネー"
+"トすることは可能です(例:外部の OTS サーバーによって作成されたトランザクショ"
+"ンを使用)。トランザクションコンテキストが JRMP 呼び出しを介してサーバーに伝"
+"搬されるようにするため、JRMP 呼び出し側のプロキシに対してトランザクション伝搬"
+"のコンテキストファクトリを次のように明示的に設定する必要があります。"
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/An_Introduction_to_the_JTA.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/An_Introduction_to_the_JTA.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/An_Introduction_to_the_JTA.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,112 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr ""
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr ""

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Book_Info.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Book_Info.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Configuring_JBossJTA.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Configuring_JBossJTA.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Configuring_JBossJTA.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,136 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr ""
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Examples.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Examples.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Examples.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,471 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/JDBC_and_Transactions.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/JDBC_and_Transactions.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/JDBC_and_Transactions.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,751 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Revision_History.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Revision_History.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Revision_History.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/The_Resource_Manager.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/The_Resource_Manager.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/The_Resource_Manager.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,663 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transaction_Recovery.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transaction_Recovery.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transaction_Recovery.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transactions.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transactions.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transactions.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,473 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Transactions_JTA_Programmers_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Using_JBossJTA_in_Application_Servers.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Using_JBossJTA_in_Application_Servers.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/Using_JBossJTA_in_Application_Servers.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,209 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/An_Introduction_to_the_JTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/An_Introduction_to_the_JTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/An_Introduction_to_the_JTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,111 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr ""
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 00:05+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Configuring_JBossJTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Configuring_JBossJTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Configuring_JBossJTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,135 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr ""
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Examples.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Examples.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Examples.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,470 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/JBoss_Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/JDBC_and_Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/JDBC_and_Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/JDBC_and_Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,750 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/The_Resource_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/The_Resource_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/The_Resource_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,662 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transaction_Recovery.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transaction_Recovery.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transaction_Recovery.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,472 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Using_JBossJTA_in_Application_Servers.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Using_JBossJTA_in_Application_Servers.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/pt-BR/Using_JBossJTA_in_Application_Servers.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,208 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/An_Introduction_to_the_JTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/An_Introduction_to_the_JTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/An_Introduction_to_the_JTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,111 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:6
+#, no-c-format
+msgid "An Introduction to the JTA"
+msgstr ""
+
+#. Tag: title
+#: An_Introduction_to_the_JTA.xml:8
+#, no-c-format
+msgid "The Java Transaction API"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:9
+#, no-c-format
+msgid ""
+"The interfaces specified by the many transaction standards are typically too "
+"low-level for most application programmers. Therefore, Sun Microsystems has "
+"specified higher-level interfaces to assist in the development of "
+"distributed transactional applications. Note, these interfaces are still low-"
+"level, and require, for example, the programmer to be concerned with state "
+"management and concurrency for transactional application. In addition, they "
+"are geared more for applications which require XA resource integration "
+"capabilities, rather than the more general resources which the other APIs "
+"allow."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:12
+#, no-c-format
+msgid ""
+"With reference to [JTA99], distributed transaction services typically "
+"involve a number of participants:"
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:17
+#, no-c-format
+msgid ""
+"Application server: which provides the infrastructure required to support "
+"the application run-time environment which includes transaction state "
+"management, for example, an EJB server."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:22
+#, no-c-format
+msgid ""
+"Transaction manager: provides the services and management functions required "
+"to support transaction demarcation, transactional resource management, "
+"synchronisation and transaction context propagation."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:27
+#, no-c-format
+msgid ""
+"Resource manager: (through a resource adapter<footnote> <para> A Resource "
+"Adapter is used by an application server or client to connect to a Resource "
+"Manager. JDBC drivers which are used to connect to relational databases are "
+"examples of Resource Adapters. </para> </footnote>) provides the application "
+"with access to resources. The resource manager participates in distributed "
+"transactions by implementing a transaction resource interface used by the "
+"transaction manager to communicate transaction association, transaction "
+"completion and recovery."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:36
+#, no-c-format
+msgid ""
+"A communication resource manager (CRM): supports transaction context "
+"propagation and access to the transaction service for incoming and outgoing "
+"requests."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:41
+#, no-c-format
+msgid ""
+"From the transaction manager’s perspective, the actual implementation of the "
+"transaction services does not need to be exposed; only high-level interfaces "
+"need to be defined to allow transaction demarcation, resource enlistment, "
+"synchronization and recovery process to be driven from the users of the "
+"transaction services. The JTA is a high-level application interface that "
+"allows a transactional application to demarcate transaction boundaries, and "
+"contains also contains a mapping of the X/Open XA protocol."
+msgstr ""
+
+#. Tag: para
+#: An_Introduction_to_the_JTA.xml:45
+#, no-c-format
+msgid ""
+"The JTA support provided by JBossJTA is compliant with the 1.0.1 "
+"specification."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 00:05+0000\n"
+"PO-Revision-Date: 2008-09-01 00:05+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions JTA Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about the Transactions JTA from the view of the programmer"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:21
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:27
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Configuring_JBossJTA.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Configuring_JBossJTA.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Configuring_JBossJTA.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,135 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:6
+#, no-c-format
+msgid "Configuring JBossJTA"
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:8
+#, no-c-format
+msgid "Configuring options"
+msgstr ""
+
+#. Tag: para
+#: Configuring_JBossJTA.xml:9
+#, no-c-format
+msgid ""
+"The following table shows the configuration features, with default values "
+"shown in italics. For more detailed information, the relevant section "
+"numbers are provided."
+msgstr ""
+
+#. Tag: title
+#: Configuring_JBossJTA.xml:13
+#, no-c-format
+msgid "JBossJTA configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:17
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:20
+#, no-c-format
+msgid "Possibile Values"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:23
+#, no-c-format
+msgid "Relevant Section"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:30
+#, no-c-format
+msgid "com.arjuna.ats.jta.supportSubtransactions"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:33
+#, no-c-format
+msgid "YES/NO"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:40
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaTMImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:43
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/"
+"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:50
+#, no-c-format
+msgid "com.arjuna.ats.jta.jtaUTImplementation"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:53
+#, no-c-format
+msgid ""
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com."
+"arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:60
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaBackoffPeriod"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:69
+#, no-c-format
+msgid "com.arjuna.ats.jdbc.isolationLevel"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:72
+#, no-c-format
+msgid "Any supported JDBC isolation level."
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:79
+#, no-c-format
+msgid "com.arjuna.ats.jta.xaTransactionTimetouEnabled"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:82
+#, no-c-format
+msgid "true/false"
+msgstr ""
+
+#. Tag: entry
+#: Configuring_JBossJTA.xml:85
+#, no-c-format
+msgid "Chapter 3"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Examples.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Examples.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Examples.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,470 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Examples.xml:6
+#, no-c-format
+msgid "Examples"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:8
+#, no-c-format
+msgid "JDBC example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:9
+#, no-c-format
+msgid ""
+"The following code illustrates many of the points described above (note that "
+"for simplicity, much error checking code has been remove). This example "
+"assumes that you are using the transactional JDBC driver provided with "
+"JBossTS. For details about how to configure and use this driver see the "
+"previous Chapter."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:12
+#, no-c-format
+msgid ""
+"public class JDBCTest\n"
+"{\n"
+"public static void main (String[] args)\n"
+"{\n"
+"        /*\n"
+"         */\n"
+"        \n"
+"        Connection conn = null;\n"
+"        Connection conn2 = null;\n"
+"        Statement stmt = null;        // non-tx statement\n"
+"        Statement stmtx = null;        // will be a tx-statement\n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                System.out.println(\"\\nCreating connection to database: "
+"\"+url);\n"
+"        \n"
+"                /*\n"
+"                 * Create conn and conn2 so that they are bound to the "
+"JBossTS\n"
+"                 * transactional JDBC driver. The details of how to do this "
+"will\n"
+"                 * depend on your environment, the database you wish to use "
+"and\n"
+"                 * whether or not you want to use the Direct or JNDI "
+"approach. See\n"
+"                 * the appropriate chapter in the JTA Programmers Guide.\n"
+"                 */\n"
+"        \n"
+"                stmt = conn.createStatement();  // non-tx statement\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table\");\n"
+"                        stmt.executeUpdate(\"DROP TABLE test_table2\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                        // assume not in database.\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table (a "
+"INTEGER,b INTEGER)\");\n"
+"                        stmt.executeUpdate(\"CREATE TABLE test_table2 (a "
+"INTEGER,b INTEGER)\");\n"
+"                }\n"
+"                catch (Exception e)\n"
+"                {\n"
+"                }\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        System.out.println(\"Starting top-level transaction."
+"\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement(); // will be a tx-"
+"statement\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 1."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table (a, b) "
+"VALUES (1,2)\");\n"
+"        \n"
+"                        ResultSet res1 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nInspecting table 1.\");\n"
+"        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nAdding entries to table 2."
+"\");\n"
+"        \n"
+"                        stmtx.executeUpdate(\"INSERT INTO test_table2 (a, b) "
+"VALUES (3,4)\");\n"
+"                        \n"
+"                        res1 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        \n"
+"                        System.out.println(\"\\nInspecting table 2.\");\n"
+"        \n"
+"                        while (res1.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res1.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res1.getInt"
+"(2));\n"
+"                        }\n"
+"                        System.out.print(\"\\nNow attempting to rollback "
+"changes.\");\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"rollback();\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"begin();\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        ResultSet res2 = null;\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"1.\");\n"
+"        \n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        System.out.println(\"\\nNow checking state of table "
+"2.\");\n"
+"        \n"
+"                        stmtx = conn.createStatement();\n"
+"                        res2 = stmtx.executeQuery(\"SELECT * FROM test_table2"
+"\");\n"
+"                        while (res2.next())\n"
+"                        {\n"
+"                                System.out.println(\"Column 1: \"+res2.getInt"
+"(1));\n"
+"                                System.out.println(\"Column 2: \"+res2.getInt"
+"(2));\n"
+"                        }\n"
+"        \n"
+"                        com.arjuna.ats.jta.UserTransaction.userTransaction()."
+"commit(true);\n"
+"                }\n"
+"                catch (Exception ex)\n"
+"                {\n"
+"                        ex.printStackTrace();\n"
+"                        System.exit(0);\n"
+"                }\n"
+"        }\n"
+"        catch (Exception sysEx)\n"
+"        {\n"
+"                sysEx.printStackTrace();\n"
+"                System.exit(0);\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Examples.xml:16
+#, no-c-format
+msgid "Failure recovery example"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:17
+#, no-c-format
+msgid ""
+"This class implements the <interfacename>XAResourceRecovery</interfacename> "
+"interface for <code>XAResources</code>. The parameter supplied in "
+"setParameters can contain arbitrary information necessary to initialize the "
+"class once created. In this instance it contains the name of the property "
+"file in which the db connection information is specified, as well as the "
+"number of connections that this file contains information on (separated "
+"by ;)."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:21
+#, no-c-format
+msgid ""
+"This is only an <emphasis>example</emphasis> of the sorts of things an "
+"<code>XAResourceRecovery</code> implementer could do. This implementation "
+"uses a property file that is assumed to contain sufficient information to "
+"recreate connections used during the normal run of an application so that we "
+"can perform recovery on them. It is not recommended that information such as "
+"user name and password appear in such a raw text format as it opens up a "
+"potential security hole."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:25
+#, no-c-format
+msgid ""
+"The db parameters specified in the property file are assumed to be in the "
+"format:"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:30
+#, no-c-format
+msgid "DB_x_DatabaseURL="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:35
+#, no-c-format
+msgid "DB_x_DatabaseUser="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:40
+#, no-c-format
+msgid "DB_x_DatabasePassword="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:45
+#, no-c-format
+msgid "DB_x_DatabaseDynamicClass="
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:50
+#, no-c-format
+msgid "Where x is the number of the connection information."
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:54
+#, no-c-format
+msgid ""
+"Some error handling code has been removed from this text for ease of "
+"readability purposes."
+msgstr ""
+
+#. Tag: screen
+#: Examples.xml:58
+#, no-c-format
+msgid ""
+"/*\n"
+" * Some XAResourceRecovery implementations will do their startup work here,\n"
+" * and then do little or nothing in setDetails. Since this one needs to "
+"know\n"
+" * dynamic class name, the constructor does nothing.\n"
+" */\n"
+"        \n"
+"public BasicXARecovery () throws SQLException\n"
+"{\n"
+"        numberOfConnections = 1;\n"
+"        connectionIndex = 0;\n"
+"        props = null;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * The recovery module will have chopped off this class name already. The\n"
+" * parameter should specify a property file from which the url, user name,\n"
+" * password, etc. can be read.\n"
+" * \n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception\n"
+" *          occurred during initialisation.\n"
+" */\n"
+"        \n"
+"public boolean initialise (String parameter) throws SQLException\n"
+"{\n"
+"        if (parameter == null) \n"
+"                return true;\n"
+"        \n"
+"        int breakPosition = parameter.indexOf(BREAKCHARACTER);\n"
+"        String fileName = parameter;\n"
+"        \n"
+"        if (breakPosition != -1)\n"
+"        {\n"
+"                fileName = parameter.substring(0, breakPosition - 1);\n"
+"        \n"
+"                try\n"
+"                {\n"
+"                        numberOfConnections = Integer.parseInt(parameter."
+"substring(breakPosition + 1));\n"
+"                }\n"
+"                catch (NumberFormatException e)\n"
+"                {\n"
+"                        return false;\n"
+"                }\n"
+"        }\n"
+"        \n"
+"        try\n"
+"        {\n"
+"                String uri = com.arjuna.common.util.FileLocator.locateFile"
+"(fileName);\n"
+"                jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class."
+"getName(), uri);\n"
+"        \n"
+"                props = jdbcPropertyManager.propertyManager.getProperties"
+"();\n"
+"        }\n"
+"        catch (Exception e)\n"
+"        {\n"
+"                return false;\n"
+"        }\n"
+"        \n"
+"        return true;\n"
+"}\n"
+"        \n"
+"/*\n"
+" * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find\n"
+" *          information for connection!\n"
+" */\n"
+"        \n"
+"public synchronized XAResource getXAResource () throws SQLException\n"
+"{\n"
+"        JDBC2RecoveryConnection conn = null;\n"
+"        \n"
+"        if (hasMoreResources())\n"
+"        {\n"
+"                connectionIndex++;\n"
+"        \n"
+"                conn = getStandardConnection();\n"
+"        \n"
+"        if (conn == null) conn = getJNDIConnection();\n"
+"        }\n"
+"        \n"
+"                return conn.recoveryConnection().getConnection()."
+"getXAResource();\n"
+"}\n"
+"        \n"
+"public synchronized boolean hasMoreResources ()\n"
+"{\n"
+"        if (connectionIndex == numberOfConnections) \n"
+"                return false;\n"
+"        else\n"
+"                return true;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getStandardConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + number + urlTag);\n"
+"        String password = new String(dbTag + number + passwordTag);\n"
+"        String user = new String(dbTag + number + userTag);\n"
+"        String dynamicClass = new String(dbTag + number + dynamicClassTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                String dc = props.getProperty(dynamicClass);\n"
+"        \n"
+"                if (dc != null)\n"
+"                        dbProperties.put(TransactionalDriver.dynamicClass, "
+"dc);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private final JDBC2RecoveryConnection getJNDIConnection ()\n"
+"        throws SQLException\n"
+"{\n"
+"        String number = new String(\"\" + connectionIndex);\n"
+"        String url = new String(dbTag + jndiTag + number + urlTag);\n"
+"        String password = new String(dbTag + jndiTag + number + "
+"passwordTag);\n"
+"        String user = new String(dbTag + jndiTag + number + userTag);\n"
+"        \n"
+"        Properties dbProperties = new Properties();\n"
+"        \n"
+"        String theUser = props.getProperty(user);\n"
+"        String thePassword = props.getProperty(password);\n"
+"        \n"
+"        if (theUser != null)\n"
+"        {\n"
+"                dbProperties.put(TransactionalDriver.userName, theUser);\n"
+"                dbProperties.put(TransactionalDriver.password, "
+"thePassword);\n"
+"        \n"
+"                return new JDBC2RecoveryConnection(url, dbProperties);\n"
+"        }\n"
+"        else\n"
+"                return null;\n"
+"}\n"
+"        \n"
+"private int numberOfConnections;\n"
+"private int connectionIndex;\n"
+"private Properties props;\n"
+"private static final String dbTag = \"DB_\";\n"
+"private static final String urlTag = \"_DatabaseURL\";\n"
+"private static final String passwordTag = \"_DatabasePassword\";\n"
+"private static final String userTag = \"_DatabaseUser\";\n"
+"private static final String dynamicClassTag = \"_DatabaseDynamicClass\";\n"
+"private static final String jndiTag = \"JNDI_\";\n"
+"        \n"
+"/*\n"
+" * Example:\n"
+" * \n"
+" * DB2_DatabaseURL=jdbc\\:arjuna\\:sequelink\\://qa02\\:20001\n"
+" * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester\n"
+" * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers."
+"sequelink_5_1\n"
+" * \n"
+" * DB_JNDI_DatabaseURL=jdbc\\:arjuna\\:jndi DB_JNDI_DatabaseUser=tester1\n"
+" * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay\n"
+" * DB_JNDI_Host=qa02 DB_JNDI_Port=20000\n"
+" */\n"
+"\n"
+" private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for "
+"parameters"
+msgstr ""
+
+#. Tag: para
+#: Examples.xml:59
+#, no-c-format
+msgid ""
+"The class <classname>com.arjuna.ats.internal.jdbc.recovery."
+"JDBC2RecoveryConnection</classname> may be used to create a new connection "
+"to the database using the same parameters that were used to create the "
+"initial connection."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/JBoss_Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/JDBC_and_Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/JDBC_and_Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/JDBC_and_Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,750 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:6
+#, no-c-format
+msgid "JDBC and Transactions"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:8
+#, no-c-format
+msgid "Using the transactional JDBC driver"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:9
+#, no-c-format
+msgid ""
+"JBossJTA supports the construction of both local and distributed "
+"transactional applications which access databases using the JDBC 2.0 APIs. "
+"JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA "
+"X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc "
+"package."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:12
+#, no-c-format
+msgid ""
+"The JDBC 2.0 support has been tested with the following drivers and "
+"databases:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:17
+#, no-c-format
+msgid "Oracle 8.1.6/8.1.7, 9i and 10g thin driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:22
+#, no-c-format
+msgid "MS SQL Server 2000 native driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:27
+#, no-c-format
+msgid "In the past we have qualified against:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:32
+#, no-c-format
+msgid "Merant’s Sequelink 5.1 with Oracle 8.1.6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:37
+#, no-c-format
+msgid "Cloudscape 3.6 with Cloudscape’s own database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:42
+#, no-c-format
+msgid ""
+"However, these drivers and databases are no longer part of our supported "
+"platforms. They may continue to work with JBossTS, but we cannot make that "
+"guarantee."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:46
+#, no-c-format
+msgid "Managing transactions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:47
+#, no-c-format
+msgid ""
+"JBossJTA must be able to associate work performed on a JDBC connection with "
+"a specific transaction. Therefore, implicit transaction propagation and/or "
+"indirect transaction management must be used by applications, i.e., for each "
+"JDBC connection it must be possible for JBossJTA to determine the invoking "
+"thread’s current transaction context."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:52
+#, no-c-format
+msgid "Restrictions"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:53
+#, no-c-format
+msgid ""
+"The following restrictions are imposed by limitations in the JDBC "
+"specifications and by JBossJTA to ensure that transactional interactions "
+"with JDBC databases can be correctly managed:"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:57
+#, no-c-format
+msgid ""
+"Nested transactions are not supported by JDBC 2.0. If an attempt is made to "
+"use a JDBC connection within a subtransaction, JBossJTA will throw a "
+"suitable exception and no work will be allowed on that connection. However, "
+"if you wish to have nested transactions, then you can set the <property>com."
+"arjuna.ats.jta.supportSubtransactions</property> property to YES."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:63
+#, no-c-format
+msgid "Transactional drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:64
+#, no-c-format
+msgid ""
+"The JBossJTA approach to incorporating JDBC connections within transactions "
+"is to provide transactional JDBC drivers through which all interactions "
+"occur. These drivers intercept all invocations and ensure that they are "
+"registered with, and driven by, appropriate transactions. There is a single "
+"type of transactional driver through which any JDBC driver can be driven; "
+"obviously if the database is not transactional then ACID properties cannot "
+"be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</"
+"code>, which implements the <interfacename>java.sql.Driver</interfacename> "
+"interface."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:68
+#, no-c-format
+msgid "Loading drivers"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:69
+#, no-c-format
+msgid ""
+"The driver may be directly instantiated and used within an application. For "
+"example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:73
+#, no-c-format
+msgid "TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:74
+#, no-c-format
+msgid ""
+"They can be registered with the JDBC driver manager (<code>java.sql."
+"DriverManager</code>) by adding them to the Java system properties. The "
+"<property>jdbc.drivers</property> property contains a list of driver class "
+"names, separated by colons, that are loaded by the JDBC driver manager when "
+"it is initialized."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:77
+#, no-c-format
+msgid ""
+"/*\n"
+" * Register the driver via the system properties variable\n"
+" * \"jdbc.drivers\"\n"
+" */ \n"
+"        \n"
+"Properties p = System.getProperties(); \n"
+"        \n"
+"switch (dbType)\n"
+"{\n"
+"case MYSQL:\n"
+"        p.put(\"jdbc.drivers\", \"org.gjt.mm.mysql.Driver\"); \n"
+"        break;\n"
+"case CLOUDSCAPE:\n"
+"        p.put(\"jdbc.drivers\", \"COM.cloudscape.core.JDBCDriver\"); \n"
+"        break;\n"
+"}\n"
+"        \n"
+"System.setProperties(p);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:78
+#, no-c-format
+msgid ""
+"Alternatively, the <methodname>Class.forName()</methodname> method may be "
+"used to load the driver or drivers:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:81
+#, no-c-format
+msgid "Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:82
+#, no-c-format
+msgid ""
+"Calling <methodname>Class.forName()</methodname> will automatically register "
+"the driver with the JDBC driver manager. It is also possible to explicitly "
+"create an instance of the JDBC driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:85
+#, no-c-format
+msgid ""
+"sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();\n"
+"        \n"
+"DriverManager.registerDriver(drv);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:86
+#, no-c-format
+msgid ""
+"When you have loaded a driver, it is available for making a connection with "
+"a DBMS."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:92
+#, no-c-format
+msgid "Connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:93
+#, no-c-format
+msgid ""
+"In this section we shall discuss the notion of transactional JDBC "
+"connections, how they are managed within JBossJTA and the implications on "
+"using them within an application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:97
+#, no-c-format
+msgid "Making the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:98
+#, no-c-format
+msgid ""
+"Because JDBC connectivity in JBossJTA works by simply providing a new JDBC "
+"driver, application code can remain relatively the same to that when not "
+"using transactions. Typically, the application programmer need only start "
+"and terminate transactions."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:103
+#, no-c-format
+msgid "JDBC 2.0"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:104
+#, no-c-format
+msgid ""
+"Before describing the JDBC 2.0 support it is necessary to mention that the "
+"following properties can be set and passed to the JBossJTA driver (they are "
+"all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</"
+"classname> class):"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:110
+#, no-c-format
+msgid ""
+"<property>userName</property>: the user name to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:115
+#, no-c-format
+msgid ""
+"<property>password</property>: the password to use when attempting to "
+"connect to the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:120
+#, no-c-format
+msgid ""
+"<property>createDb</property>: if set to true, the driver will attempt to "
+"create the database when it connects. This may not be supported by all JDBC "
+"2.0 implementations."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:125
+#, no-c-format
+msgid ""
+"<property>dynamicClass</property>: this specifies a class to instantiate to "
+"connect to the database, rather than using JNDI."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:131
+#, no-c-format
+msgid "XADataSources"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:132
+#, no-c-format
+msgid ""
+"JDBC 2.0 connections are created from appropriate DataSources. Those "
+"connections which must participate within distributed transactions are "
+"obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 "
+"driver, JBossJTA will use the appropriate DataSource whenever a connection "
+"to the database is made. It will then obtain <code>XAResources</code> and "
+"register them with the transaction via the JTA interfaces. It is these "
+"<code>XAResources</code> which the transaction service will use when the "
+"transaction terminates in order to drive the database to either commit or "
+"rollback the changes made via the JDBC connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:136
+#, no-c-format
+msgid ""
+"There are two ways in which the JBossJTA JDBC 2.0 support can obtain "
+"<code>XADataSources</code>. These will be explained in the following "
+"sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is "
+"instantiated directly by the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:140
+#, no-c-format
+msgid "Java Naming and Directory Interface (JNDI)"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:141
+#, no-c-format
+msgid ""
+"In order to allow a JDBC driver to use arbitrary DataSources without having "
+"to know specific details about their implementations, DataSources are "
+"typically obtained from JNDI. A specific (XA)DataSource can be created and "
+"registered with an appropriate JNDI implementation, and the application (or "
+"JDBC driver) can later bind to and use it. Since JNDI only allows the "
+"application to see the (XA)DataSource as an instance of the interface (for "
+"example, <property>javax.sql.XADataSource</property>) rather than as an "
+"instance of the implementation class (for example, <property>com.mydb."
+"myXADataSource</property>), the application is not tied at build time to "
+"only use a specific (XA)DataSource implementation."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:145
+#, no-c-format
+msgid ""
+"To get the <classname>TransactionalDriver</classname> class to use a JNDI "
+"registered <code>XADataSource</code> it is first necessary to create the "
+"<code>XADataSource</code> instance and store it in an appropriate JNDI "
+"implementation. Details of how to do this can be found in the JDBC 2.0 "
+"tutorial available at JavaSoft. An example is show below:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:148
+#, no-c-format
+msgid ""
+"XADataSource ds = MyXADataSource();\n"
+"Hashtable env = new Hashtable();\n"
+"String initialCtx = PropertyManager.getProperty(\"Context."
+"INITIAL_CONTEXT_FACTORY\");\n"
+"        \n"
+"env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);\n"
+"        \n"
+"initialContext ctx = new InitialContext(env);\n"
+"        \n"
+"ctx.bind(\"jdbc/foo\", ds);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:149
+#, no-c-format
+msgid ""
+"Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is "
+"the JNDI way of specifying the type of JNDI implementation to use."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:152
+#, no-c-format
+msgid ""
+"Then the application must pass an appropriate connection URL to the JDBC 2.0 "
+"driver:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:155
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:jdbc/foo\", "
+"dbProps);"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:156
+#, no-c-format
+msgid ""
+"The JNDI URL must be pre-pended with jdbc:arjuna: in order for the "
+"<code>ArjunaJDBC2Driver</code> to recognise that the DataSource must "
+"participate within transactions and be driven accordingly."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:160
+#, no-c-format
+msgid "Dynamic class instantiation"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:161
+#, no-c-format
+msgid ""
+"Many JDBC 2.0 implementations provide proprietary implementations of "
+"<interfacename>XADataSources</interfacename> that provide non-standard "
+"extensions to the specification. In order to allow the application to remain "
+"isolated from the actual JDBC 2.0 implementation it is using and yet "
+"continue to be able to use these extensions, JBossJTA hides the details of "
+"these proprietary implementations using dynamic class instantiation. In "
+"addition, the use of JNDI is not required when using this mechanism because "
+"the actual implementation of the <interfacename>XADataSource</interfacename> "
+"will be directly instantiated, albeit in a manner which will not tie an "
+"application or driver to a specific implementation. JBossJTA therefore has "
+"several classes which are for specific JDBC 2.0 implementations, and these "
+"can be selected at runtime by the application setting the "
+"<property>dynamicClass</property> property appropriately:"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:166
+#, no-c-format
+msgid "Dynamic Class property values for specific databases"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:170
+#, no-c-format
+msgid "Database Type"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:173
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:180
+#, no-c-format
+msgid "Cloudscape 3.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:183
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:188
+#, no-c-format
+msgid "Sequelink 5.1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:191
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:196
+#, no-c-format
+msgid "Oracle 8.1.6"
+msgstr ""
+
+#. Tag: entry
+#: JDBC_and_Transactions.xml:199
+#, no-c-format
+msgid "com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:207
+#, no-c-format
+msgid ""
+"As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as "
+"part of the qualified drivers. Furthermore, we recommend using JNDI to "
+"obtain JDBC classes rather than the direct method described here."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:211
+#, no-c-format
+msgid ""
+"The application code must specify which dynamic class the "
+"<code>TransactionalDriver</code> should instantiate when setting up the "
+"connection:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:214
+#, no-c-format
+msgid ""
+"Properties dbProps = new Properties();\n"
+"        \n"
+"dbProps.setProperty(TransactionalDriver.userName, \"user\");\n"
+"dbProps.setProperty(TransactionalDriver.password, \"password\");\n"
+"dbProps.setProperty(TransactionalDriver.dynamicClass,\n"
+"\"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0\");\n"
+"        \n"
+"TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();\n"
+"Connection connection = arjunaJDBC2Driver.connect(\"jdbc:arjuna:sequelink://"
+"host:port;databaseName=foo\",dbProperties);"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:216
+#, no-c-format
+msgid "Using the connection"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:217
+#, no-c-format
+msgid ""
+"Once the connection has been established (for example, using the "
+"<methodname>java.sql.DriverManager.getConnection</methodname> method), all "
+"operations on the connection will be monitored by JBossJTA. Note, it is not "
+"necessary to use the transactional connection within transactions. If a "
+"transaction is not present when the connection is used, then operations will "
+"be performed directly on the database."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:222
+#, no-c-format
+msgid "JDBC does not support subtransactions."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:226
+#, no-c-format
+msgid ""
+"Transaction timeouts can be used to automatically terminate transactions "
+"should the connection not be terminated within an appropriate period."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:229
+#, no-c-format
+msgid ""
+"JBossJTA connections can be used within multiple different transactions "
+"simultaneously, for instance, different threads, with different notions of "
+"the current transaction, may use the same JDBC connection. JBossJTA does "
+"connection pooling for each transaction within the JDBC connection. So, "
+"although multiple threads may use the same instance of the JDBC connection, "
+"internally this may be using a different connection instance per "
+"transaction. With the exception of close, all operations performed on the "
+"connection at the application level will only be performed on this "
+"transaction-specific connection."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:232
+#, no-c-format
+msgid ""
+"JBossJTA will automatically register the JDBC driver connection with the "
+"transaction via an appropriate resource . When the transaction terminates, "
+"this resource will be responsible for either committing or rolling back any "
+"changes made to the underlying database via appropriate calls on the JDBC "
+"driver."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:235
+#, no-c-format
+msgid ""
+"Once created, the driver and any connection can be used in the same way as "
+"any other JDBC driver or connection."
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:238
+#, no-c-format
+msgid ""
+"Statement stmt = conn.createStatement();\n"
+"        \n"
+"try\n"
+"{\n"
+"        stmt.executeUpdate(\"CREATE TABLE test_table (a INTEGER,b INTEGER)"
+"\");\n"
+"}\n"
+"catch (SQLException e)\n"
+"{\n"
+"        // table already exists\n"
+"}\n"
+"        \n"
+"stmt.executeUpdate(\"INSERT INTO test_table (a, b) VALUES (1,2)\");\n"
+"        \n"
+"ResultSet res1 = stmt.executeQuery(\"SELECT * FROM test_table\");"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:240
+#, no-c-format
+msgid "Connection pooling"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:241
+#, no-c-format
+msgid ""
+"For each user name and password, JBossJTA will maintain a single instance of "
+"each connection for as long as that connection is in use. Subsequent "
+"requests for the same connection will get a reference to the originally "
+"created connection, rather than a new instance. Attempts to close the "
+"connection are allowed, but the connection will only actually be closed when "
+"all users (including transactions) have either finished with the connection, "
+"or issued close calls."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:246
+#, no-c-format
+msgid "Reusing connections"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:247
+#, no-c-format
+msgid ""
+"Some JDBC drivers allow the reuse of a connection for multiple different "
+"transactions once a given transaction has completed. Unfortunately this is "
+"not a common feature, and other drivers require a new connection to be "
+"obtained for each new transaction. By default, the JBossJTA transactional "
+"driver will always obtain a new connection for each new transaction. "
+"However, if an existing connection is available and is currently unused, it "
+"is possible to make JBossJTA reuse this connection. In order to do this, the "
+"reuseconnection=true option must be specified on the JDBC URL. For example:"
+msgstr ""
+
+#. Tag: screen
+#: JDBC_and_Transactions.xml:251
+#, no-c-format
+msgid "jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true"
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:253
+#, no-c-format
+msgid "Terminating the transaction"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:254
+#, no-c-format
+msgid ""
+"Whenever a transaction terminates (either explicitly by the application "
+"programmer, or implicitly when any associated transaction timeout expires) "
+"that has a JDBC connection registered with it, JBossJTA will drive the "
+"database (via the JDBC driver) to either commit or roll back any changes "
+"made to it. This happens transparently to the application."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:259
+#, no-c-format
+msgid "AutoCommit"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:260
+#, no-c-format
+msgid ""
+"If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to "
+"true for JDBC 1.0 then the execution of every SQL statement is a separate "
+"top-level transaction, and grouping multiple statements to be managed within "
+"a single OTS transaction is not possible. Therefore, JBossJTA will disable "
+"<code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If "
+"auto commit is subsequently set to true by the application, JBossJTA will "
+"raise the <code>java.sql.SQLException</code>."
+msgstr ""
+
+#. Tag: title
+#: JDBC_and_Transactions.xml:265
+#, no-c-format
+msgid "Setting isolation levels"
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:266
+#, no-c-format
+msgid ""
+"When using the JBossJTA JDBC driver, it may be necessary to set the "
+"underlying transaction isolation level on the XA connection. By default, "
+"this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to "
+"set this to something more appropriate for your application. In order to do "
+"this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> "
+"property to the appropriate isolation level in string form, for example, "
+"<code>TRANSACTION_READ_COMMITTED</code>, or "
+"<code>TRANSACTION_REPEATABLE_READ</code>."
+msgstr ""
+
+#. Tag: para
+#: JDBC_and_Transactions.xml:271
+#, no-c-format
+msgid ""
+"At present this property applies to all XA connections created in the JVM."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/The_Resource_Manager.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/The_Resource_Manager.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/The_Resource_Manager.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,662 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_Resource_Manager.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:11
+#, no-c-format
+msgid "The XAResource Interface"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:12
+#, no-c-format
+msgid ""
+"Whereas some transaction specifications and systems define a generic "
+"resource which can be used to register arbitrary resources with a "
+"transaction, the JTA is much more XA specific. The <interfacename>javax."
+"transaction.xa.XAResource</interfacename> interface is a Java mapping of the "
+"<interfacename>XA</interfacename> interface. The <interfacename>XAResource</"
+"interfacename> interface defines the contract between a Resource Manager and "
+"a Transaction Manager in a distributed transaction processing environment. A "
+"resource adapter for a resource manager implements the "
+"<interfacename>XAResource</interfacename> interface to support association "
+"of a top-level transaction to a resource such as a relational database."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:15
+#, no-c-format
+msgid ""
+"The <interfacename>XAResource</interfacename> interface can be supported by "
+"any transactional resource adapter that is intended to be used in an "
+"environment where transactions are controlled by an external transaction "
+"manager, for example, a database management system. An application may "
+"access data through multiple database connections. Each database connection "
+"is associated with an <code>XAResource</code> object that serves as a proxy "
+"object to the underlying resource manager instance. The transaction manager "
+"obtains an <code>XAResource</code> for each resource manager participating "
+"in a top-level transaction. It uses the start method to associate the "
+"transaction with the resource, and it uses the end method to disassociate "
+"the transaction from the resource."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:18
+#, no-c-format
+msgid ""
+"The resource manager is responsible for associating the transaction with all "
+"work performed on its data between the start and end invocations. At "
+"transaction commit time, these transactional resource managers are informed "
+"by the transaction manager to prepare, commit, or rollback the transaction "
+"according to the two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:21
+#, no-c-format
+msgid ""
+"In order to be better integrated with Java, the <interfacename>XAResource</"
+"interfacename> differs from the standard <interfacename>XA</interfacename> "
+"interface in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:26
+#, no-c-format
+msgid ""
+"The resource manager initialization is done implicitly by the resource "
+"adapter when the resource (connection) is acquired. There is no "
+"<code>xa_open</code> equivalent."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:31
+#, no-c-format
+msgid ""
+"<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is "
+"represented by a separate <code>XAResource</code> object."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:36
+#, no-c-format
+msgid ""
+"Asynchronous operations are not supported because Java supports multi-"
+"threaded processing and most databases do not support asynchronous "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:41
+#, no-c-format
+msgid ""
+"Error return values that are caused by the transaction manager’s improper "
+"handling of the <code>XAResource</code> object are mapped to Java exceptions "
+"via the <classname>XAException</classname> class."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:46
+#, no-c-format
+msgid ""
+"The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java "
+"threads that are given access to the <code>XAResource</code> and "
+"<code>Connection</code> objects. For example, it is legal for two different "
+"threads to perform the start and end operations on the same "
+"<code>XAResource</code> object."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:52
+#, no-c-format
+msgid "Extended XAResource control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:53
+#, no-c-format
+msgid ""
+"By default, whenever an <code>XAResource</code> object is registered with a "
+"JTA compliant transaction service, you have no control over the order in "
+"which it will be invoked during the two-phase commit protocol, with respect "
+"to other <code>XAResource</code> objects. In JBossTS, however, there is "
+"support for controlling the order via the two interfaces <interfacename>com."
+"arjuna.ats.jta.resources.StartXAResource</interfacename> and "
+"<interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. "
+"By inheriting your <code>XAResource</code> instance from either of these "
+"interfaces, you control whether an instance of your class will be invoked "
+"first or last, respectively."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:58
+#, no-c-format
+msgid ""
+"Only one instance of each interface type may be registered with a specific "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:62
+#, no-c-format
+msgid ""
+"In the TxCore manual we discussed the Last Resource Commit optimization "
+"(LRCO), whereby a single resource that is only one-phase aware (does not "
+"support prepare), can be enlisted with a transaction that is manipulating "
+"two-phase aware participants. This optimization is also supported within the "
+"JTA aspects of JBossTS."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:65
+#, no-c-format
+msgid ""
+"In order to use the LRCO, your <interfacename>XAResource</interfacename> "
+"implementation must extend the <interfacename>com.arjuna.ats.jta.resources."
+"LastResourceCommitOptimisation</interfacename> marker interface (it provides "
+"no methods). When enlisting the resource via Transaction.enlistResource, "
+"JBossTS will ensure that only a single instance of this type of participant "
+"is used within each transaction. Your resource will be driven last in the "
+"commit protocol: no invocation of prepare will occur."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:69
+#, no-c-format
+msgid ""
+"By default an attempt to enlist more than one instance of a "
+"<classname>LastResourceCommitOptimisation</classname> class will fail and "
+"false will be returned from <methodname>Transaction.enlistResource</"
+"methodname>. This behaviour can be overridden by setting the <property>com."
+"arjuna.ats.jta.allowMultipleLastResources</property> to true. However, "
+"before doing so you should read the Section on enlisting multiple one-phase "
+"aware resources."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:73
+#, no-c-format
+msgid ""
+"In order to utilize the LRCO in a distributed environment, it is necessary "
+"to disable interposition support. It is still possible to use implicit "
+"context propagation."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:77
+#, no-c-format
+msgid "Enlisting multiple one-phase aware resources"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:78
+#, no-c-format
+msgid ""
+"As discussed in the Transaction Core documentation, in order to guarantee "
+"consistency (atomicity) of outcome between multiple participants (resources) "
+"within the same transaction, the two-phase commit protocol is used with a "
+"durable transaction log. In the case of possessing a single one-phase aware "
+"resource, it is still possible to achieve an atomic (all of nothing) outcome "
+"across resources by utilizing the Last Resource Commit Optimization, as "
+"explained earlier."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:82
+#, no-c-format
+msgid ""
+"However, there may be situations where multiple one-phase aware resources "
+"are enlisted within the same transaction. For example, a legacy database "
+"running within the same transaction as a legacy JMS implementation. In these "
+"situations it is not possible to achieve atomicity of transaction outcome "
+"across multiple resources because none of them enter the prepare (waiting "
+"for final outcome) state: they commit or rollback immediately when "
+"instructed by the transaction coordinator, without knowledge of other "
+"resource states and without any way of undoing should subsequent resources "
+"make a different choice. This can result in data corruption or heuristic "
+"outcomes."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:85
+#, no-c-format
+msgid "In these situations we recommend one of the following approaches:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:90
+#, no-c-format
+msgid ""
+"Wrap the resources in compensating transactions. See the Web Services "
+"transactions guides for further details."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:95
+#, no-c-format
+msgid "Migrate the legacy implementations to two-phase aware equivalents."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:100
+#, no-c-format
+msgid ""
+"In the cases where neither of these options are viable, JBossTS does support "
+"the enlistment of multiple one-phase aware resources within the same "
+"transaction. In order to do this, see the section on the Last Resource "
+"Commit Optimization."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:104
+#, no-c-format
+msgid ""
+"Even when this support is enabled, JBossTS will issue warnings when it "
+"detects that the option has been enabled (\"You have chosen to enable "
+"multiple last resources in the transaction manager. This is transactionally "
+"unsafe and should not be relied upon.”) and when multiple one-phase "
+"resources are enlisted within the transaction (“This is transactionally "
+"unsafe and should not be relied on.”)."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:111
+#, no-c-format
+msgid "Opening a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:112
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface requires that the "
+"transaction manager initialize a resource manager (xa_open) prior to any "
+"other xa_ calls. JTA requires initialization of a resource manager to be "
+"embedded within the resource adapter that represents the resource manager. "
+"The transaction manager does not need to know how to initialize a resource "
+"manager; it is only responsible for informing the resource manager about "
+"when to start and end work associated with a transaction and when to "
+"complete the transaction. The resource adapter is responsible for opening "
+"(initializing) the resource manager when the connection to the resource "
+"manager is established."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:118
+#, no-c-format
+msgid "Closing a Resource Manager"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:119
+#, no-c-format
+msgid ""
+"A resource manager is closed by the resource adapter as a result of "
+"destroying the transactional resource. A transaction resource at the "
+"resource adapter level is comprised of two separate objects:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:124
+#, no-c-format
+msgid ""
+"An <code>XAResource</code> object that allows the transaction manager to "
+"start and end the transaction association with the resource in use and to "
+"coordinate transaction completion process."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:129
+#, no-c-format
+msgid ""
+"A connection object that allows the application to perform operations on the "
+"underlying resource (for example, JDBC operations on an RDBMS)."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:134
+#, no-c-format
+msgid ""
+"Once opened, the resource manager is kept open until the resource is "
+"released (closed) explicitly. When the application invokes the connection’s "
+"close method, the resource adapter invalidates the connection object "
+"reference that was held by the application and notifies the application "
+"server about the close. The transaction manager should invoke the "
+"<methodname>XAResource.end</methodname> method to disassociate the "
+"transaction from that connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:137
+#, no-c-format
+msgid ""
+"The close notification allows the application server to perform any "
+"necessary cleanup work and to mark the physical XA connection as free for "
+"reuse, if connection pooling is in place."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:143
+#, no-c-format
+msgid "Threads of control"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:144
+#, no-c-format
+msgid ""
+"The X/Open <interfacename>XA</interfacename> interface specifies that the "
+"transaction association related xa calls must be invoked from the same "
+"thread context. This thread-of-control requirement is not applicable to the "
+"object-oriented component-based application run-time environment, in which "
+"application threads are dispatched dynamically at method invocation time. "
+"Different threads may be using the same connection resource to access the "
+"resource manager if the connection spans multiple method invocation. "
+"Depending on the implementation of the application server, different threads "
+"may be involved with the same <code>XAResource</code> object. The resource "
+"context and the transaction context may be operated independent of thread "
+"context. This means that it is possible for different threads to be invoking "
+"the start and end methods."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:147
+#, no-c-format
+msgid ""
+"If the application server allows multiple threads to use a single "
+"<code>XAResource</code> object and the associated connection to the resource "
+"manager, it is the responsibility of the application server to ensure that "
+"there is only one transaction context associated with the resource at any "
+"point of time. Thus the <interfacename>XAResource</interfacename> interface "
+"requires that the resource managers be able to support the two-phase commit "
+"protocol from any thread context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:153
+#, no-c-format
+msgid "Transaction association"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:154
+#, no-c-format
+msgid ""
+"Transactions are associated with a transactional resource via the start "
+"method, and disassociated from the resource via the <methodname>end</"
+"methodname> method. The resource adapter is responsible for internally "
+"maintaining an association between the resource connection object and the "
+"<code>XAResource</code> object. At any given time, a connection is "
+"associated with a single transaction, or it is not associated with any "
+"transaction at all. Because JTA does not support nested transactions it is "
+"an error for the start method to be invoked on a connection that is "
+"currently associated with a different transaction."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:157
+#, no-c-format
+msgid ""
+"Interleaving multiple transaction contexts using the same resource may be "
+"done by the transaction manager as long as start and end are invoked "
+"properly for each transaction context switch. Each time the resource is used "
+"with a different transaction, the method end must be invoked for the "
+"previous transaction that was associated with the resource, and start must "
+"be invoked for the current transaction context."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:163
+#, no-c-format
+msgid "Externally controlled connections"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:164
+#, no-c-format
+msgid ""
+"For transactional application whose transaction states are managed by an "
+"application server, its resources must also be managed by the application "
+"server so that transaction association is performed properly. If an "
+"application is associated with a transaction, it is an error for the "
+"application to perform transactional work through the connection without "
+"having the connection’s resource object already associated with the global "
+"transaction. The application server must ensure that the <code>XAResource</"
+"code> object in use is associated with the transaction. This is done by "
+"invoking the <methodname>Transaction.enlistResource</methodname> method."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:167
+#, no-c-format
+msgid ""
+"If a server side transactional application retains its database connection "
+"across multiple client requests, the application server must ensure that "
+"before dispatching a client request to the application thread, the resource "
+"is enlisted with the application’s current transaction context. This implies "
+"that the application server manages the connection resource usage status "
+"across multiple method invocations."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:173
+#, no-c-format
+msgid "Resource sharing"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:174
+#, no-c-format
+msgid ""
+"When the same transactional resource is used to interleave multiple "
+"transactions, it is the responsibility of the application server to ensure "
+"that only one transaction is enlisted with the resource at any given time. "
+"To initiate the transaction commit process, the transaction manager is "
+"allowed to use any of the resource objects connected to the same resource "
+"manager instance. The resource object used for the two-phase commit protocol "
+"does not need to have been involved with the transaction being completed."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:177
+#, no-c-format
+msgid ""
+"The resource adapter must be able to handle multiple threads invoking the "
+"<interfacename>XAResource</interfacename> methods concurrently for "
+"transaction commit processing. For example, with reference to the code "
+"below, suppose we have a transactional resource <code>r1</code>. Global "
+"transaction <code>xid1</code> was started and ended with <code>r1</code>. "
+"Then a different global transaction <code>xid2</code> is associated with "
+"<code>r1</code>. In the meanwhile, the transaction manager may start the two "
+"phase commit process for <code>xid1</code> using <code>r1</code> or any "
+"other transactional resource connected to the same resource manager. The "
+"resource adapter needs to allow the commit process to be executed while the "
+"resource is currently associated with a different global transaction."
+msgstr ""
+
+#. Tag: screen
+#: The_Resource_Manager.xml:180
+#, no-c-format
+msgid ""
+"XAResource xares = r1.getXAResource();\n"
+"        \n"
+"xares.start(xid1); // associate xid1 to the connection\n"
+"        \n"
+"..\n"
+"xares.end(xid1); // disassociate xid1 to the connection\n"
+"..\n"
+"xares.start(xid2); // associate xid2 to the connection\n"
+"..\n"
+"// While the connection is associated with xid2,\n"
+"// the TM starts the commit process for xid1\n"
+"status = xares.prepare(xid1);\n"
+"..\n"
+"xares.commit(xid1, false);"
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:184
+#, no-c-format
+msgid "Local and global transactions"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:185
+#, no-c-format
+msgid ""
+"The resource adapter must support the usage of both local and global "
+"transactions within the same transactional connection. Local transactions "
+"are transactions that are started and coordinated by the resource manager "
+"internally. The <interfacename>XAResource</interfacename> interface is not "
+"used for local transactions. When using the same connection to perform both "
+"local and global transactions, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:190
+#, no-c-format
+msgid ""
+"The local transaction must be committed (or rolled back) before starting a "
+"global transaction in the connection."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:195
+#, no-c-format
+msgid ""
+"The global transaction must be disassociated from the connection before any "
+"local transaction is started."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:203
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:204
+#, no-c-format
+msgid ""
+"Timeout values can be associated with transactions in order to control their "
+"lifetime. If a transaction has not terminated (committed or rolled back) "
+"before the timeout value elapses, the transaction system will automatically "
+"roll it back. The <interfacename>XAResource</interfacename> interface "
+"supports a operation, which allows the timeout associated with the current "
+"transaction to be propagated to the resource manager and if supported, will "
+"override any default timeout associated with the resource manager. This can "
+"be useful when long running transactions may have lifetimes that would "
+"exceed the default and in which case, if the timeout were not altered, the "
+"resource manager would rollback before the transaction terminated and "
+"subsequently cause the transaction to roll back as well."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:207
+#, no-c-format
+msgid ""
+"If no timeout value is explicitly set for a transaction, or a value of 0 is "
+"specified, then an implementation specific default value may be used. In the "
+"case of JBossTS, how this default value is set depends upon which JTA "
+"implementation you are using."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:212
+#, no-c-format
+msgid ""
+"Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator."
+"defaultTimeout</property> property value and give a timeout in seconds. The "
+"default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:217
+#, no-c-format
+msgid ""
+"JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property "
+"value and give a timeout in seconds. The default value is 0, for instance, "
+"transactions do not timeout."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:222
+#, no-c-format
+msgid ""
+"Unfortunately there are situations where imposing the same timeout as the "
+"transaction on a resource manager may not be appropriate. For example, if "
+"the system administrator wishes to have control over the lifetimes on "
+"resource managers and does not want to (or cannot) allow that control to be "
+"passed to some external entity. At present JBossTS supports an all-or-"
+"nothing approach to whether or not <methodname>setTransactionTimeout</"
+"methodname> is called on <interfacename>XAResource</interfacename> instances."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:225
+#, no-c-format
+msgid ""
+"If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> "
+"property is set to true (the default) then it will be called on all "
+"instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</"
+"methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</"
+"classname> can be used."
+msgstr ""
+
+#. Tag: title
+#: The_Resource_Manager.xml:231
+#, no-c-format
+msgid "Dynamic Registration"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:232
+#, no-c-format
+msgid ""
+"Dynamic registration is not supported in <interfacename>XAResource</"
+"interfacename> because of the following reasons:"
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:237
+#, no-c-format
+msgid ""
+"In the Java component-based application server environment, connections to "
+"the resource manager are acquired dynamically when the application "
+"explicitly requests a connection. These resources are enlisted with the "
+"transaction manager on a needed basis."
+msgstr ""
+
+#. Tag: para
+#: The_Resource_Manager.xml:242
+#, no-c-format
+msgid ""
+"If a resource manager requires a way to dynamically register its work to the "
+"global transaction, the implementation can be done at the resource adapter "
+"level via a private interface between the resource adapter and the "
+"underlying resource manager."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transaction_Recovery.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transaction_Recovery.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transaction_Recovery.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transaction_Recovery.xml:6
+#, no-c-format
+msgid "Transaction Recovery"
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:8
+#, no-c-format
+msgid "Failure recovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:9
+#, no-c-format
+msgid ""
+"During recovery, the Transaction Manager needs to be able to communicate to "
+"all resource managers that are in use by the applications in the system. For "
+"each resource manager, the Transaction Manager uses the "
+"<methodname>XAResource.recover</methodname> method to retrieve the list of "
+"transactions that are currently in a prepared or heuristically completed "
+"state. Typically, the system administrator configures all transactional "
+"resource factories that are used by the applications deployed on the system. "
+"An example of such a resource factory is the JDBC <code>XADataSource</code> "
+"object, which is a factory for the JDBC <code>XAConnection</code> objects."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:12
+#, no-c-format
+msgid ""
+"Because <code>XAResource</code> objects are not persistent across system "
+"failures, the Transaction Manager needs to have some way to acquire the "
+"<code>XAResource</code> objects that represent the resource managers which "
+"might have participated in the transactions prior to the system failure. For "
+"example, a Transaction Manager might, through the use of JNDI lookup "
+"mechanism, acquire a connection from each of the transactional resource "
+"factories, and then obtain the corresponding <code>XAResource</code> object "
+"for each connection. The Transaction Manager then invokes the "
+"<methodname>XAResource.recover</methodname> method to ask each resource "
+"manager to return the transactions that are currently in a prepared or "
+"heuristically completed state."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:16
+#, no-c-format
+msgid ""
+"When running XA recovery it is necessary to tell JBossTS which types of Xid "
+"it can recover. Each Xid that JBossTS creates has a unique node identifier "
+"encoded within it and JBossTS will only recover transactions and states that "
+"match a specified node identifier. The node identifier to use should be "
+"provided to JBossTS via a property that starts with the name <property>com."
+"arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A "
+"value of ‘*’ will force JBossTS to recover (and possibly rollback) all "
+"transactions irrespective of their node identifier and should be used with "
+"caution."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:20
+#, no-c-format
+msgid ""
+"If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all "
+"<interfacename>XAResource</interfacename> crash recovery automatically. "
+"Otherwise one of the following recovery mechanisms will be used:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:25
+#, no-c-format
+msgid ""
+"If the <code>XAResource</code> is serializable, then the serialized form "
+"will be saved during transaction commitment, and used during recovery. It is "
+"assumed that the recreated <code>XAResource</code> is valid and can be used "
+"to drive recovery on the associated database."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:30
+#, no-c-format
+msgid ""
+"The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, <interfacename>com.arjuna.ats.jta.recovery."
+"XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats."
+"jta.recovery.XARecoveryResource</interfacename> interfaces are used. These "
+"are documented in the JDBC chapters on failure recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:36
+#, no-c-format
+msgid ""
+"In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</"
+"interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</"
+"interfacename>. Users are encouraged to move to his new interface."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:43
+#, no-c-format
+msgid "Recovering XAConnections"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:44
+#, no-c-format
+msgid ""
+"When recovering from failures, JBossJTA requires the ability to reconnect to "
+"databases that were in use prior to the failures in order to resolve any "
+"outstanding transactions. Most connection information will be saved by the "
+"transaction service during its normal execution, and can be used during "
+"recovery to recreate the connection. However, it is possible that not all "
+"such information will have been saved prior to a failure (for example, a "
+"failure occurs before such information can be saved, but after the database "
+"connection is used). In order to recreate those connections it is necessary "
+"to provide implementations of the following JBossJTA interface "
+"<interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</"
+"interfacename>, one for each database that may be used by an application."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:48
+#, no-c-format
+msgid ""
+"If using the transactional JDBC 2.0 driver provided with JBossJTA, then no "
+"additional work is necessary in order to ensure that recovery occurs."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:52
+#, no-c-format
+msgid ""
+"To inform the recovery system about each of the <code>XAResourceRecovery</"
+"code> instances, it is necessary to specify their class names through "
+"property variables. Any property variable found in the properties file, or "
+"registered at runtime, which starts with the name <property>com.arjuna.ats."
+"jta.recovery.XAResourceRecovery</property> will be assumed to represent one "
+"of these instances, and its value should be the class name. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:55
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:56
+#, no-c-format
+msgid ""
+"Additional information that will be passed to the instance when it is "
+"created may be specified after a semicolon:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:59
+#, no-c-format
+msgid ""
+"com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;"
+"myData=hello"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:61
+#, no-c-format
+msgid "These properties need to go into the JTA section of the property file."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:65
+#, no-c-format
+msgid "Any errors will be reported during recovery."
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:68
+#, no-c-format
+msgid ""
+"public interface XAResourceRecovery\n"
+"{\n"
+"        public XAResource getXAResource () throws SQLException;\n"
+"        \n"
+"        public boolean initialise (String p);\n"
+"        \n"
+"        public boolean hasMoreResources ();\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:69
+#, no-c-format
+msgid "Each method should return the following information:"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:74
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: once the instance has been created, any "
+"additional information which occurred on the property value (anything found "
+"after the first semi-colon) will be passed to the object. The object can "
+"then use this information in an implementation specific manner to initialise "
+"itself, for example."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:79
+#, no-c-format
+msgid ""
+"<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</"
+"code> implementation may provide multiple <code>XAResource</code> instances. "
+"Before any call to <methodname>getXAResource</methodname> is made, "
+"<methodname>hasMoreResources</methodname> is called to determine whether "
+"there are any further connections to be obtained. If this returns false, "
+"<methodname>getXAResource</methodname> will not be called again during this "
+"recovery sweep and the instance will not be used further until the next "
+"recovery scan."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:84
+#, no-c-format
+msgid ""
+"<methodname>getXAResource</methodname>: returns an instance of the "
+"<code>XAResource</code> object. How this is created (and how the parameters "
+"to its constructors are obtained) is up to the <code>XAResourceRecovery</"
+"code> implementation. The parameters to the constructors of this class "
+"should be similar to those used when creating the initial driver or data "
+"source, and should obviously be sufficient to create new <code>XAResources</"
+"code> that can be used to drive recovery."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:90
+#, no-c-format
+msgid ""
+"If you want your <code>XAResourceRecovery</code> instance to be called "
+"during each sweep of the recovery manager then you should ensure that once "
+"<methodname>hasMoreResources</methodname> returns false to indicate the end "
+"of work for the current scan it then returns true for the next recovery scan."
+msgstr ""
+
+#. Tag: title
+#: Transaction_Recovery.xml:97
+#, no-c-format
+msgid "Shipped XAResourceRecovery implementations"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:98
+#, no-c-format
+msgid ""
+"Recovery of <interfacename>XA</interfacename> datasources can sometimes be "
+"implementation dependant, requiring developers to provide their own "
+"<interfacename>XAResourceRecovery</interfacename> instances. However, "
+"JBossTS ships with several out-of-the-box implementations that may be useful."
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:103
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</"
+"interfacename>: this expects an XML property file to be specified upon "
+"creation and from which it will read the database URL, username and "
+"password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:106
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseURL\" value=\"jdbc:oracle:thin:"
+"@hostname:1521:sid\"/&gt;\n"
+"                &lt;property name=\"UserName\"    value=\"username\"/&gt;\n"
+"                &lt;property name=\"Password\"    value=\"password\"/&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""
+
+#. Tag: para
+#: Transaction_Recovery.xml:109
+#, no-c-format
+msgid ""
+"<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</"
+"interfacename>: this recovery implementation should work on any datasource "
+"that is exposed via JNDI. It expects an XML property file to be specified "
+"upon creation and from which it will read the database JNDI name, username "
+"and password. For example:"
+msgstr ""
+
+#. Tag: screen
+#: Transaction_Recovery.xml:112
+#, no-c-format
+msgid ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"        \n"
+"&lt;transaction-service&gt;\n"
+"        &lt;properties name=\"jdbc\" type=\"system\"&gt;\n"
+"                &lt;property name=\"DatabaseJNDIName\" value=\"java:ExampleDS"
+"\"/&gt;\n"
+"                &lt;property name=\"UserName\"         value=\"username\"/"
+"&gt;\n"
+"                &lt;property name=\"Password\"         value=\"password\"/"
+"&gt;\n"
+"        &lt;/properties&gt;\n"
+"&lt;/transaction-service&gt;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transactions.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transactions.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transactions.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,472 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions.xml:6
+#, no-c-format
+msgid "Transactions"
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:8
+#, no-c-format
+msgid "The API"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:9
+#, no-c-format
+msgid ""
+"The Java Transaction API consists of three elements: a high-level "
+"application transaction demarcation interface, a high-level transaction "
+"manager interface intended for application server, and a standard Java "
+"mapping of the X/Open XA protocol intended for transactional resource "
+"manager. All of the JTA classes and interfaces occur within the "
+"<package>javax.transaction</package> package, and the corresponding JBossJTA "
+"implementations within the <package>com.arjuna.ats.jta</package> package."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:13
+#, no-c-format
+msgid ""
+"Each Xid that JBossTS creates must have a unique node identifier encoded "
+"within it and JBossTS will only recover transactions and states that match a "
+"specified node identifier. The node identifier to use should be provided to "
+"JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> "
+"property. You must make sure this value is unique across your JBossTS "
+"instances. If you do not provide a value, then JBossTS will fabricate one "
+"and report the value via the logging infrastructure. The contents of this "
+"should be alphanumeric."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:18
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:19
+#, no-c-format
+msgid ""
+"The <interfacename>UserTransaction</interfacename> interface provides "
+"applications with the ability to control transaction boundaries. It has "
+"methods for beginning, committing, and rolling back top-level transactions: "
+"nested transactions are not supported, and begin throws the "
+"<code>NotSupportedException</code> when the calling thread is already "
+"associated with a transaction. <interfacename>UserTransaction</"
+"interfacename> automatically associates newly created transactions with the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:24
+#, no-c-format
+msgid ""
+"In JBossJTA, UserTransactions can be obtained from the static "
+"<methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:28
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:33
+#, no-c-format
+msgid ""
+"make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</property>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:38
+#, no-c-format
+msgid ""
+"1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</"
+"property> is set to <property>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</property>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:44
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:45
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface allows the "
+"application server to control transaction boundaries on behalf of the "
+"application being managed."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:50
+#, no-c-format
+msgid ""
+"In JBossJTA, transaction manager implementations can be obtained from the "
+"static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</"
+"methodname> method."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:54
+#, no-c-format
+msgid ""
+"The Transaction Manager maintains the transaction context association with "
+"threads as part of its internal data structure. A thread’s transaction "
+"context is either null or it refers to a specific global transaction. "
+"Multiple threads may be associated with the same global transaction. As "
+"noted above, nested transactions are not supported."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:57
+#, no-c-format
+msgid ""
+"Each transaction context is encapsulated by a Transaction object, which can "
+"be used to perform operations which are specific to the target transaction, "
+"regardless of the calling thread’s transaction context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:60
+#, no-c-format
+msgid ""
+"The <methodname>begin</methodname> method of "
+"<interfacename>TransactionManager</interfacename> starts a new top-level "
+"transaction and associates the transaction context with the calling thread. "
+"If the calling thread is already associated with a transaction then it "
+"throws the <code>NotSupportedException</code>."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:63
+#, no-c-format
+msgid ""
+"The <methodname>getTransaction</methodname> method returns the Transaction "
+"object that represents the transaction context currently associated with the "
+"calling thread. This object can be used to perform various operations on the "
+"target transaction, described later."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:66
+#, no-c-format
+msgid ""
+"The commit method is used to complete the transaction currently associated "
+"with the calling thread. After it returns, the calling thread is associated "
+"with no transaction. If commit is called when the thread is not associated "
+"with any transaction context, the TM throws an exception. In some "
+"implementation, the commit operation is restricted to the transaction "
+"originator only. If the calling thread is not allowed to commit the "
+"transaction, the TM throws an exception. JBossJTA does not currently impose "
+"any restriction on the ability of threads to terminate transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:69
+#, no-c-format
+msgid ""
+"The <methodname>rollback</methodname> method is used to rollback the "
+"transaction associated with the current thread. After the "
+"<methodname>rollback</methodname> method completes, the thread is associated "
+"with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:73
+#, no-c-format
+msgid ""
+"In a multi-threaded environment it is possible that multiple threads are "
+"active within the same transaction. If checked transaction semantics have "
+"been disabled, or the transaction times out, then it is possible for a "
+"transaction to be terminated by a thread other than the one that created it. "
+"In this case, it is often important that this information is communicated to "
+"the creator. JBossTS does this during commit or rollback by throwing "
+"<code>IllegalStateException</code>."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:78
+#, no-c-format
+msgid "Suspending and resuming a transaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:79
+#, no-c-format
+msgid ""
+"The JTA supports the concept of a thread temporarily suspending and resuming "
+"transactions to enable it to perform non-transactional work. The suspend "
+"method is called to temporarily suspend the current transaction that is "
+"associated with the calling thread, i.e., so that the thread is no longer "
+"operating within its scope. If the thread is not associated with any "
+"transaction, a null object reference is returned; otherwise, a valid "
+"<code>Transaction</code> object is returned. The <code>Transaction</code> "
+"object can later be passed to the resume method to reinstate the transaction "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:83
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method associates the specified "
+"transaction context with the calling thread. If the transaction specified is "
+"a valid transaction, the transaction context is associated with the calling "
+"thread; otherwise, the thread is associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:87
+#, no-c-format
+msgid ""
+"If <methodname>resume</methodname> is invoked when the calling thread is "
+"already associated with another transaction, the Transaction Manager throws "
+"the <code>IllegalStateException</code> exception."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:91
+#, no-c-format
+msgid ""
+"Transaction tobj = TransactionManager.suspend();\n"
+"        ..\n"
+"TransactionManager.resume(tobj);"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:93
+#, no-c-format
+msgid ""
+"Some Transaction Manager implementations allow a suspended transaction to be "
+"resumed by a different thread. This feature is not required by JTA, but "
+"JBossJTA does support this."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:97
+#, no-c-format
+msgid ""
+"When a transaction is suspended the application server must ensure that the "
+"resources in use by the application are no longer registered with the "
+"suspended transaction. When a resource is de-listed this triggers the "
+"Transaction Manager to inform the resource manager to disassociate the "
+"transaction from the specified resource object. When the application’s "
+"transaction context is resumed, the application server must ensure that the "
+"resources in use by the application are again enlisted with the transaction. "
+"Enlisting a resource as a result of resuming a transaction triggers the "
+"Transaction Manager to inform the resource manager to re-associate the "
+"resource object with the resumed transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:101
+#, no-c-format
+msgid "The Transaction interface"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:102
+#, no-c-format
+msgid ""
+"The <interfacename>Transaction</interfacename> interface allows operations "
+"to be performed on the transaction associated with the target object. Every "
+"top-level transaction is associated with one <code>Transaction</code> object "
+"when the transaction is created. The <code>Transaction</code> object can be "
+"used to:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:108
+#, no-c-format
+msgid "Enlist the transactional resources in use by the application."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:113
+#, no-c-format
+msgid "Register for transaction synchronization call backs."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:118
+#, no-c-format
+msgid "Commit or rollback the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:123
+#, no-c-format
+msgid "Obtain the status of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:128
+#, no-c-format
+msgid ""
+"The <methodname>commit</methodname> and <methodname>rollback</methodname> "
+"methods allow the target object to be committed or rolled back. The calling "
+"thread is not required to have the same transaction associated with the "
+"thread. If the calling thread is not allowed to commit the transaction, the "
+"transaction manager throws an exception. At present JBossJTA does not impose "
+"restrictions on threads terminating transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:132
+#, no-c-format
+msgid "Resource enlistment"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:133
+#, no-c-format
+msgid ""
+"Transactional resources such as database connections are typically managed "
+"by the application server in conjunction with some resource adapter and "
+"optionally with connection pooling optimization. In order for an external "
+"transaction manager to co-ordinate transactional work performed by the "
+"resource managers, the application server must enlist and de-list the "
+"resources used in the transaction. These resources (participants) are "
+"enlisted with the transaction so that they can be informed when the "
+"transaction terminates, for example, are driven through the two-phase commit "
+"protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:137
+#, no-c-format
+msgid ""
+"As stated previously, the JTA is much more closely integrated with the XA "
+"concept of resources than the arbitrary objects. For each resource in-use by "
+"the application, the application server invokes the "
+"<methodname>enlistResource</methodname> method with an <code>XAResource</"
+"code> object which identifies the resource in use. See for details on how "
+"the implementation of the <code>XAResource</code> can affect recovery in the "
+"event of a failure."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:140
+#, no-c-format
+msgid ""
+"The enlistment request results in the transaction manager informing the "
+"resource manager to start associating the transaction with the work "
+"performed through the corresponding resource. The transaction manager is "
+"responsible for passing the appropriate flag in its <methodname>XAResource."
+"start</methodname> method call to the resource manager."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:143
+#, no-c-format
+msgid ""
+"The <methodname>delistResource</methodname> method is used to disassociate "
+"the specified resource from the transaction context in the target object. "
+"The application server invokes the method with the two parameters: the "
+"<code>XAResource</code> object that represents the resource, and a flag to "
+"indicate whether the operation is due to the transaction being suspended "
+"(TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource "
+"release by the application (TMSUCCESS)."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:146
+#, no-c-format
+msgid ""
+"The de-list request results in the transaction manager informing the "
+"resource manager to end the association of the transaction with the target "
+"<code>XAResource</code>. The flag value allows the application server to "
+"indicate whether it intends to come back to the same resource whereby the "
+"resource states must be kept intact. The transaction manager passes the "
+"appropriate flag value in its <methodname>XAResource.end</methodname> method "
+"call to the underlying resource manager."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:150
+#, no-c-format
+msgid "Transaction synchronization"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:151
+#, no-c-format
+msgid ""
+"Transaction synchronization allows the application server to be notified "
+"before and after the transaction completes. For each transaction started, "
+"the application server may optionally register a Synchronization call back "
+"object to be invoked by the transaction manager:"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:157
+#, no-c-format
+msgid ""
+"The <methodname>beforeCompletion</methodname> method is called prior to the "
+"start of the two-phase transaction complete process. This call is executed "
+"in the same transaction context of the caller who initiates the "
+"<methodname>TransactionManager.commit</methodname> or the call is executed "
+"with no transaction context if <methodname>Transaction.commit</methodname> "
+"is used."
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:162
+#, no-c-format
+msgid ""
+"The <methodname>afterCompletion</methodname> method is called after the "
+"transaction has completed. The status of the transaction is supplied in the "
+"parameter. This method is executed without a transaction context."
+msgstr ""
+
+#. Tag: title
+#: Transactions.xml:168
+#, no-c-format
+msgid "Transaction equality"
+msgstr ""
+
+#. Tag: para
+#: Transactions.xml:169
+#, no-c-format
+msgid ""
+"The transaction manager implements the Transaction object’s equals method to "
+"allow comparison between the target object and another Transaction object. "
+"The equals method should return true if the target object and the parameter "
+"object both refer to the same global transaction."
+msgstr ""
+
+#. Tag: screen
+#: Transactions.xml:173
+#, no-c-format
+msgid ""
+"Transaction txObj = TransactionManager.getTransaction();\n"
+"Transaction someOtherTxObj = ..\n"
+"        ..\n"
+"        \n"
+"boolean isSame = txObj.equals(someOtherTxObj);"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Transactions_JTA_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Using_JBossJTA_in_Application_Servers.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Using_JBossJTA_in_Application_Servers.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_JTA_Programmers_Guide/zh-CN/Using_JBossJTA_in_Application_Servers.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,208 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:25+0000\n"
+"PO-Revision-Date: 2008-09-23 06:25+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:6
+#, no-c-format
+msgid "Using JBossJTA in Application Servers"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:8
+#, no-c-format
+msgid "JBoss Application Server"
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:10
+#, no-c-format
+msgid "Service Configuration"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:11
+#, no-c-format
+msgid ""
+"The JBoss Transaction Service is configured primarily via the XML files "
+"stored in the etc directory, but when run as a JBOSS service there are a "
+"number of configurable attributes available. They are as follows:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:17
+#, no-c-format
+msgid ""
+"TransactionTimeout – The default transaction timeout to be used for new "
+"transactions. Specified as an integer in seconds."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:22
+#, no-c-format
+msgid ""
+"StatisticsEnabled – This determines whether or not the transaction service "
+"should gather statistical information. This information can then be viewed "
+"using the PerformanceStatistics MBean. Specified as a Boolean. The default "
+"is to not gather this information."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:27
+#, no-c-format
+msgid ""
+"PropagateFullContext – This determines whether a full transactional context "
+"is propagated by context importer/exporter. If set to false only the current "
+"transaction context is propagated. If set to true the full transaction "
+"context (including parent transactions) is propagated."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:32
+#, no-c-format
+msgid ""
+"These attributes are specified as MBean attributes in the jboss-service.xml "
+"file located in the server/all/conf directory, for example:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:35
+#, no-c-format
+msgid ""
+"&lt;mbean code=\"com.arjuna.ats.jbossatx.jts.TransactionManagerService\" "
+"name=\"jboss:service=TransactionManager\"&gt;\n"
+"                \n"
+"&lt;attribute name=\"TransactionTimeout\"&gt;300&lt;/attribute&gt;\n"
+"&lt;attribute name=\"StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;\n"
+"                \n"
+"&lt;/mbean&gt;"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:36
+#, no-c-format
+msgid ""
+"The transaction service is configurable also via the standard JBoss "
+"Transaction Service property files. These are located in the JBossTS install "
+"location under the etc sub-directory."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:39
+#, no-c-format
+msgid ""
+"These files can be edited manually or through JMX. Each property file is "
+"exposed via an object with the name <code>com.arjuna.ts.properties</code> "
+"and an attribute of module where module is equal to the name of the module "
+"to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</"
+"code>."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:43
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:44
+#, no-c-format
+msgid ""
+"In order to make JBossTS logging semantically consistent with JBossAS, the "
+"TransactionManagerService modifies the level of some log messages. This is "
+"achieved by overriding the value of the <property>com.arjuna.common.util."
+"logger</property> property given in the <filename>jbossjta-properties.xml</"
+"filename> file. Therefore, the value of this property will have no effect on "
+"the logging behaviour when running embedded in JBossAS. By forcing use of "
+"the log4j_releveler logger, the TransactionManagerService causes all INFO "
+"level messages in the transaction code to be modified to behave as DEBUG "
+"messages. Therefore, these messages will not appear in log files if the "
+"filter level is INFO. All other log messages behave as normal."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:49
+#, no-c-format
+msgid "The services"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:50
+#, no-c-format
+msgid ""
+"There is currently one service offered by the JBOSS integration called "
+"TransactionManagerService. Here we shall discuss what this service does."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:54
+#, no-c-format
+msgid ""
+"The transaction manager service’s main purpose is to ensure the recovery "
+"manager is started. It also binds the JBossTS JTA transaction manager to "
+"java:/TransactionManager name with the JNDI provider. This service depends "
+"upon the existence of the CORBA ORB Service and it must be using JacORB as "
+"the underlying ORB implementation."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:57
+#, no-c-format
+msgid "There are two instances of this service:"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:62
+#, no-c-format
+msgid ""
+"distributed: this uses the JTS enabled transaction manager implementation "
+"and hence supports distributed transactions and recovery. To configure this "
+"use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</"
+"classname> class. This is the default configuration."
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:67
+#, no-c-format
+msgid ""
+"local: this uses the purely local JTA implementation. To configure this use "
+"the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</"
+"classname> class."
+msgstr ""
+
+#. Tag: title
+#: Using_JBossJTA_in_Application_Servers.xml:73
+#, no-c-format
+msgid "Ensuring Transactional Context is Propagated to the Server"
+msgstr ""
+
+#. Tag: para
+#: Using_JBossJTA_in_Application_Servers.xml:74
+#, no-c-format
+msgid ""
+"It is possible to coordinate transactions from a coordinator which is not "
+"located within the JBoss server (e.g. using transactions created by an "
+"external OTS server). To ensure the transaction context is propagated via "
+"JRMP invocations to the server, the transaction propagation context factory "
+"needs to be explicitly set for the JRMP invoker proxy. This is done as "
+"follows:"
+msgstr ""
+
+#. Tag: screen
+#: Using_JBossJTA_in_Application_Servers.xml:78
+#, no-c-format
+msgid ""
+"JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts."
+"PropagationContextManager() );"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+#Makefile for Transactions_Web_Services_Programmers_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-01 01:36+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Getting_Started.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Getting_Started.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Getting_Started.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,191 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Introduction.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Introduction.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Introduction.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,273 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/JBoss_Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Participants.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Participants.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Participants.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,457 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid ""
+"All Business Activity participants are instances of the following interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Stand-alone_Coordinator.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Stand-alone_Coordinator.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Stand-alone_Coordinator.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,34 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr ""
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/The_XTS_API.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/The_XTS_API.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/The_XTS_API.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,547 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactional_Web_Services.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactional_Web_Services.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactional_Web_Services.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,106 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactions_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactions_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactions_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,654 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/de-DE/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,950 @@
+# Language de-DE translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_Web_Services_Programmers_Guide-Transactions_Web_Services_Programmers_Guide">
+	<title>JBoss Transactions Web Services Programmers Guide</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is about Programming for Transaction Web Services</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,65 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Getting_Started">
+	<title>Getting Started</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Creating_and_deploying_participants">
+		<title>Creating and deploying participants</title>
+		<para>
+			A participant is a software entity which is driven by the transaction manager on behalf of a Web service. The creation of participants is non-trivial since they ultimately reflect the state of a Web service’s back-end processing facilities which is a function of an enterprise’s own IT infrastructure. The most that can be said about the implementation of a participant without getting into detail about the back-end systems it represents, or the details of the underlying transaction protocol is that implementations must implement one of the following interfaces, depending upon the protocol it will participate within: <code>com.arjuna.wst.Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</code>, or, <code>com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Creating_Client_Applications">
+		<title>Creating Client Applications</title>
+		<para>
+			There are two aspects to a client application using XTS. The first is the transaction declaration aspects and the second is the business logic that the client application performs. The transaction declaration aspects are taken care of automatically with XTS’s client API. This API provides simple transaction directives like begin, commit, and rollback which the client application can use to initialize, manage, and terminate transactions. Under the covers, this API invokes (via SOAP) operations on the transaction manager.
+		</para>
+		<para>
+			When the client application performs invocations on business logic Web services, then XTS does not dictate an API for that purpose. However, there is a requirement that whatever API is chosen, the XTS context be inserted onto outgoing messages, and extracted and associated with the current thread for incoming messages. To make the user’s life easier, the XTS software comes complete with three sets of “filters” which can perform the task automatically. These filters are designed to work with JAX-RPC and webMethods client libraries.
+		</para>
+		<note>
+			<para>
+				If the user chooses to use a different SOAP client infrastructure, then the onus to perform client-side header processing rests with them. XTS does not provide client-side infrastructure for anything other than JAX-RPC or webMethods for this release.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Creating_Client_Applications-JAX_RPC_Context_Handlers">
+			<title>JAX-RPC Context Handlers</title>
+			<para>
+				In order to register the JAX-RPC server-side context handler with the deployed web services, a handler chain must be included in the web services deployment descriptor. Please refer to the demo application <filename>jboss/webservices.xml</filename> deployment descriptor for an example of how this can be achieved.
+			</para>
+		</formalpara>
+		<para>
+			In order to register the JAX-RPC client-side context handler used by the client applications, a handler chain must be included in the definition of the service-ref in the client web.xml deployment descriptor. Please refer to the demo application <filename>jboss/client-web-app.xml</filename> for an example of how this can be achieved.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Creating_Client_Applications-webMethods_Context_Handlers">
+			<title>webMethods Context Handlers</title>
+			<para>
+				In order to register the webMethods server-side context handler with the deployed web services, the inbound and outbound interceptors must be configured in the web services deployment descriptor. An example of how this can be configured can be found in the demo application, for example, the <filename>RestaurantServiceAT.xml</filename>.
+			</para>
+		</formalpara>
+		<para>
+			In order to register the webMethods client-side context handler, the inbound and outbound interceptors must be configured in the <filename>glue-config.xml</filename> deployment descriptor. Please refer to the soap interceptor section of the demo application glue-config.xml for an example of how this can be achieved.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Hints_and_tips">
+		<title>Hints and tips</title>
+		<para>
+			If you want to create multiple JBoss deploys on the same machine, then you may wish to look at <ulink url="http://www.yorku.ca/dkha/jboss/docs/MultipleInstances.htm"><emphasis>Setting up multiple instances</emphasis></ulink> for information on what is required.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Summary">
+		<title>Summary</title>
+		<para>
+			This chapter has provided a high-level overview of how to use each of the major software pieces of the Web Services transactions component of JBossTS. The Web Services transaction manager provided by JBossTS is the hub of the architecture and is the only piece of software that users’ software does not bind to directly. XTS provides header processing infrastructure for dealing with Web Services transactions contexts for both users’ client applications and Web services. For developing transaction participants, XTS provides a simple interface plus the necessary document handling code.
+		</para>
+		<para>
+			This chapter is meant as an overview only, and is unlikely to answer questions on more difficult and subtle aspects. For fuller explanations of the components, please refer to the appropriate chapter elsewhere in this document.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,83 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Introduction">
+	<title>Introduction</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Introduction-JBossTS_Web_Services_transactions_overview">
+		<title>JBossTS Web Services transactions overview</title>
+		<para>
+			The XML transaction service component of JBossTS (shorthand referred to as XTS) supports the coordination of private and public Web services in a business transaction. Therefore, to understand XTS, you must be familiar with Web services, and also understand a little about transactions. This chapter introduces XTS and provides a brief overview of the technologies that form the Web services standard. Additionally, this chapter explores some of the fundamentals of transactioning technology and how it can be applied to Web services. Much of the content presented in this chapter is detailed throughout this guide; however, only overview information about Web services is provided. If you are new to creating Web services, please see consult your Web services platform documentation.
+		</para>
+		<para>
+			JBossTS provides as the XTS component a transaction solution for Web services. Using XTS, business partners can coordinate complex business transactions in a controlled and reliable manner. The JBossTS Web Services API supports a transactional coordination model based on the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-C is a generic coordination framework developed by IBM, Microsoft and BEA, WS-Atomic Transaction and WS-Business Activity are transaction protocols that utilize this framework.
+		</para>
+		<para>
+			Web services are modular, reusable software components that are created by exposing business functionality through a Web service interface. Web services communicate directly with other Web services using standards-based technologies such as SOAP and HTTP. These standards-based communication technologies allow Web services to be accessed by customers, suppliers, and trading partners, independent of hardware operation system or programming environment. The result is a vastly improved collaboration environment as compared to today&#39;s EDI and business-to-business (B2B) solutions—an environment where businesses can expose their current and future business applications as Web services that can be easily discovered and accessed by external partners.
+		</para>
+		<para>
+			Web services, by themselves, are not fault tolerant. In fact, some of the reasons that make it an attractive development solution are also the same reasons that service-based applications may have drawbacks:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Application components that are exposed as Web services may be owned by third parties, which provides benefits in terms of cost of maintenance, but drawbacks in terms of having exclusive control over their behavior;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Web services are usually remotely located which increases risk of failure due to increased network travel for invocations.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Applications that have high dependability requirements, must find a method of minimizing the effects of errors that may occur when an application consumes Web services. One method of safeguarding against such failures is to interact with an application’s Web services within the context of a transaction. A transaction is simply a unit of work which is completed entirely, or in the case of failures is reversed to some agreed consistent state – normally to appear as if the work had never occurred in the first place. With XTS, transactions can span multiple Web services which mean that work performed across multiple enterprises can be managed with transactional support.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-Managing_Service_Based_Processes">
+			<title>Managing Service-Based Processes</title>
+			<para>
+				XTS allows you to create transactions that drive complex business processes spanning multiple Web services. Current Web services standards do not address the requirements for a high-level coordination of services since in today’s Web services applications, which use single request/receive interactions, coordination is typically not a problem. However, for applications that engage multiple services among multiple business partners, coordinating and controlling the resulting interactions is essential. This becomes even more apparent when you realize that you generally have little in the way of formal guarantees when interacting with third-party Web services.
+			</para>
+		</formalpara>
+		<para>
+			XTS provides the infrastructure for coordinating services during a business process. By organizing processes as transactions, business partners can collaborate on complex business interactions in a reliable manner, insuring the integrity of their data - usually represented by multiple changes to a database – but without the usual overheads and drawbacks of directly exposing traditional transaction-processing engines directly onto the web. The following example demonstrates how an application may manage service-based processes as transactions:
+		</para>
+		<para>
+			The application in question allows a user to plan a social evening. This application is responsible for reserving a table at a restaurant, and reserving tickets to a show. Both activities are paid for using a credit card. In this example, each service represents exposed Web services provided by different service providers. XTS is used to envelop the interactions between the theater and restaurant services into a single (potentially) long-running business transaction. The business transaction must insure that seats are reserved both at the restaurant and the theater. If one event fails the user has the ability to decline both events, thus returning both services back to their original state. If both events are successful, the user’s credit card is charged and both seats are booked. As you may expect, the interaction between the services must be controlled in a reliable manner over a period of time. In addition, management must span several third-party services that are !
 remotely deployed.
+		</para>
+		<note>
+			<para>
+				Without the backing of a transaction, an undesirable outcome may occur. For example, the user credit card may be charged, even though one or both of the bookings may have failed.
+			</para>
+		</note>
+		<para>
+			This simple example describes the situations where XTS excels at supporting business processes across multiple enterprises. This example is further refined throughout this guide, and appears as a standard demonstrator (including source code) with the XTS distribution.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-Servlets">
+			<title>Servlets</title>
+			<para>
+				The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based on one-way interactions of entities rather than traditional synchronous request/response RPC style interactions. Entities (for example, transaction participants) invoke operations on other entities (for example, the transaction coordinator) in order to return responses to requests. What this means is that the programming model is based on peer-to-peer relationships, with the result that all services, whether they are participants, coordinators or clients, must have an active component that allows them to receive unsolicited messages.
+			</para>
+		</formalpara>
+		<para>
+			In the current implementation of XTS, the active component is achieved through the use of Java servlet technology. Each endpoint that can be communicated with via SOAP/XML is represented as a servlet (and published within JNDI). Fortunately for the developer, this use of servlets occurs transparently. The only drawback is that (currently) clients must reside within a domain capable of hosting servlets, i.e., an application server. It is our intention that future versions of XTS will provide configurable deployment options, allowing servlets where required, but not mandating them.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-SOAP">
+			<title>SOAP</title>
+			<para>
+				SOAP has emerged as the de-facto message format for XML-based communication in the Web services arena. It is a lightweight protocol that allows the user to define the content of a message and to provide hints as to how recipients should process that message.
+			</para>
+		</formalpara>
+		<para>
+			SOAP messages can be divided into two main categories: Remote Procedure Call (RPC) and Document Exchange (DE). The primary difference between the two categories is that the SOAP specification defines encoding rules and conventions for RPC. The document exchange model allows the exchange of arbitrary XML documents - a key ingredient of B2B document exchange. XTS is based on the loosely coupled document-exchange style, yet it can support transactions spanning Web service that use either document-exchange or RPC.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-Web_Services_Description_Language_WSDL">
+			<title>Web Services Description Language (WSDL)</title>
+			<para>
+				WSDL is an XML-based language used to define Web service interfaces. An application that consumes a Web service parses the service’s WSDL document to discover the location of the service, the operations that the service supports, the protocol bindings the service supports (SOAP, HTTP, etc), and how to access them (for each operation, WSDL describes the format that the client must follow).
+			</para>
+		</formalpara>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.ent
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_Web_Services_Programmers_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include> 
+	<xi:include href="Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactions_Overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Getting_Started.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactional_Web_Services.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Participants.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Stand-alone_Coordinator.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="The_XTS_API.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,249 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Test">
+	<title>Test</title>
+	<para>
+		This is a test paragraph
+	</para>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Test-The_Participant_an_Overview">
+		<title>The Participant: an Overview</title>
+		<para>
+			The participant is the entity that performs the work pertaining to transaction management on behalf of the business services involved in an application. The Web service (for example, a theatre booking system) contains some business logic for reserving a seat, enquiring availability etc, but it will need to be supported by something that maintains information in a durable manner. Typically this will be a database, but it could be a file system, NVRAM, etc. Now, although the service may talk to the back-end database directly, it cannot commit or undo any changes it (the services) makes, since these are ultimately under the control of the transaction that scoped the work. In order for the transaction to be able to exercise this control, it must have some contact with the database. In XTS this is accomplished by the participant, and the role played by the participant between the transaction and back-end transaction processing infrastructure is shown in the following figure.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Transaction_Control.png" format="PNG" />
+			</imageobject>
+			<caption>Transactions, Participants, and Back-End Transaction Control</caption>
+		</mediaobject>
+		<para>
+			Each participant in XTS is related to either the Atomic Transaction or Business Activity protocols. In the following sections we’ll consider both protocols and their respective participants.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Atomic_Transaction">
+			<title>Atomic Transaction</title>
+			<para>
+				All Atomic Transaction participants are instances of one of the following interfaces.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Durable2PCParticipant">
+			<title>Durable2PCParticipant</title>
+			<para>
+				This participant supports the WS-Atomic Transaction Durable2PC protocol with the following signatures, as per the <interfacename>com.arjuna.wst.Durable2Participant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>prepare</emphasis>: the participant should perform any work necessary to allow it to either commit or rollback the work performed by the Web service under the scope of the transaction. The implementation is free to do whatever it needs to in order to fulfill the implicit contract between it and the coordinator. The participant is expected to indicate whether it can prepare or not by returning an instance of the <code>com.arjuna.wst.Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant does not need to be informed of the transaction outcome as no state updates were made; Prepared, indicating the participant is prepared to commit or rollback depending on the final transaction outcome, and it has made sufficient state updates persistent to accomplish this; and Aborted, indicating the participant has aborted and the transaction should also attempt to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commit</emphasis>: the participant should make permanent the work that it controls. What it does will depend upon its implementation, for example, commit the reservation of the theatre ticket. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>rollback</emphasis>: the participant should undo the work that it controls. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commitOnePhase</emphasis>: if there is only a single TwoPCParticipant registered with the transaction, then the coordinator can optimize the protocol and simply tell the participant to commit: there is no need for a preparatory phase since consensus is implicit.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: during recovery the participant can inquire as to the status of the transaction it was registered with. If that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: during recovery the participant can enquire as to the status of the transaction it was registered with. If an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Volatile2PCParticipant">
+			<title>Volatile2PCParticipant</title>
+			<para>
+				This participant supports the WS-Atomic Transaction Volatile2PC protocol with the following signatures, as per the <interfacename>com.arjuna.wst.Volatile2Participant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>prepare</emphasis>: the participant should perform any work necessary to allow it to either commit or rollback the work performed by the Web service under the scope of the transaction. The implementation is free to do whatever it needs to in order to fulfill the implicit contract between it and the coordinator. The participant is expected to indicate whether it can prepare or not by returning an instance of the com.arjuna.wst.Vote. Values are: ReadOnly, indicating the participant does not need to be informed of the transaction outcome as no state updates were made; Prepared, indicating the participant is prepared to commit or rollback depending on the final transaction outcome, and it has made sufficient state updates persistent to accomplish this; and Aborted, indicating the participant has aborted and the transaction should also attempt to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commit</emphasis>: the participant should make permanent the work that it controls. What it does will depend upon its implementation, for example, commit the reservation of the theatre ticket. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>rollback</emphasis>: the participant should undo the work that it controls. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commitOnePhase</emphasis>: if there is only a single TwoPCParticipant registered with the transaction, then the coordinator can optimize the protocol and simply tell the participant to commit: there is no need for a preparatory phase since consensus is implicit.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: during recovery the participant can inquire as to the status of the transaction it was registered with. If that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: during recovery the participant can enquire as to the status of the transaction it was registered with. If an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Business_Activity">
+			<title>Business Activity</title>
+			<para>
+				All Business Activity participants are instances of the following interfaces.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-BusinessAgreementWithParticipantCompletion">
+			<title>BusinessAgreementWithParticipantCompletion</title>
+			<para>
+				This participant supports the WS-T <code>BusinessAgreementWithParticipantCompletion</code> protocol with the following signatures, as per the <interfacename>com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>close</emphasis>: the transaction has completed successfully. The participant previously informed the coordinator that it was ready to complete.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>cancel</emphasis>: the transaction has canceled, and the participant should undo any work. The participant cannot have informed the coordinator that it has completed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>compensate</emphasis>: the transaction has canceled. The participant previously informed the coordinator that it had finished work but could compensate later if required, so it is now requested to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>status</emphasis>: return the status of the participant.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: if the participant inquires as to the status of the transaction it was registered with and that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: if the participant enquired as to the status of the transaction it was registered with and an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-BusinessAgreementWithCoordinatorCompletion">
+			<title>BusinessAgreementWithCoordinatorCompletion</title>
+			<para>
+				This participant supports the WS-T <code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the following signatures, as per the <interfacename>com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>close</emphasis>: the transaction has completed successfully. The participant previously informed the coordinator that it was ready to complete.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>cancel</emphasis>: the transaction has canceled, and the participant should undo any work.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>compensate</emphasis>: the transaction has canceled. The participant previously informed the coordinator that it had finished work but could compensate later if required, so it is now requested to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>complete</emphasis>: the coordinator is informing the participant that all work it needs to do within the scope of this business activity has been received.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>status</emphasis>: return the status of the participant.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: if the participant inquires as to the status of the transaction it was registered with and that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: if the participant enquired as to the status of the transaction it was registered with and an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-BAParticipantManager">
+			<title>BAParticipantManager</title>
+			<para>
+				In order for the Business Activity protocol to work correctly, the participants must be able to autonomously signal the coordinator that they have left the activity (exited) or are ready to complete and (if necessary) compensate (completed). Unlike the Atomic Transaction protocol, where all interactions between the coordinator and participants are instigated by the coordinator when the transaction terminates, this interaction pattern requires the participant to be able to talk to the coordinator at any time during the lifetime of the business activity.
+			</para>
+		</formalpara>
+		<para>
+			As such, whenever a participant is registered with a business activity, it receives a handle on the coordinator. This handle is an instance of the <interfacename>BAParticipantManager</interfacename> interface, located in <code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>exit</emphasis>: the participant has exited the business activity. The participant uses this to inform the coordinator that is has left the activity. It will not be informed when (and how) the business activity terminates.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>completed</emphasis>: the participant has completed it works, but wishes to continue in the business activity, so that it will eventually be told when (and how) the activity terminates. The participant may later be asked to compensate for the work it has done.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>fault</emphasis>: the participant encountered an error during normal activation and has compensated. This places the business activity into a mandatory cancel-only mode.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Test-Participant_Creation_and_Deployment">
+		<title>Participant Creation and Deployment</title>
+		<para>
+			As has been shown, the participant provides the plumbing that drives the transactional aspects of the service. This section discusses the specifics of Participant programming and usage.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Participant_Creation_and_Deployment-Implementing_Participants">
+			<title>Implementing Participants</title>
+			<para>
+				Implementing a participant is, in theory, a relatively straightforward task, though depending on the complexity of the transactional infrastructure that the participant is to manage, the actual size and complexity of a participant will vary. The participant interfaces can be found under <code>com.arjuna.wst</code>. Your implementation must implement one of these interfaces.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Participant_Creation_and_Deployment-Deploying_Participants">
+			<title>Deploying Participants</title>
+			<para>
+				In order to allow Participants to be located remote from the Transaction Manager, XTS includes transparent message routing functionality. The Participant classes are not exposed directly as web services, but rather registered with a web service which receives messages from the Transaction Manager and maps them to appropriate method invocations on the relevant Participant instance. Transactional web services will typically enroll a new Participant instance of the desired type for each new transaction. A unique identifier must be provided at enrollment time and will be used to map transaction protocol messages to the appropriate participant instance. Note that Participant method invocations do not occur in a specific transaction context. Therefore, if your Participant implementation requires knowledge of the transaction context (for example, to look up state information in a persistent store) then you should provide this to the Participant instance, typically as an argume!
 nt to the constructor function. Sample Participant implementations and usage can be found in the demonstration application included with XTS.
+			</para>
+		</formalpara>
+		<para>
+			Any application code which creates and enrolls Participants must be deployed along with the parts of XTS necessary for receiving and processing incoming messages from the Transaction Manager. This typically means including the appropriate XTS .jar, .wsr and .war files in your application. If you are deploying your application only a server which does not already contain a Transaction Manger installation, you will also need to deploy the XTS configuration files.
+		</para>
+		<note>
+			<para>
+				In early access releases of the XTS product, the Transaction Manager and participant management functions are not provided as separable components. Configuration and deployment of the participant infrastructure is therefore as in the Transaction Manger section above. More flexible deployment of the XTS components will be available in the final release.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,14 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="pref-Transactions_Web_Services_Programmers_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> 
+	<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include> 
+</preface>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,15 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Stand_alone_Coordinator">
+	<title>Stand-alone Coordinator</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Stand_alone_Coordinator-Introduction">
+		<title>Introduction</title>
+		<para>
+			For configuring a stand-alone Web Services transaction coordinator, see the relevant chapter in the System Administrator’s Guide.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,215 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-The_XTS_API">
+	<title>The XTS API</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-The_XTS_API-Introduction">
+		<title>Introduction</title>
+		<para>
+			This chapter shows how to use the XTS API. This is of use both at the client-side where applications consume transactional Web services, and at the service/participant side where transactions need to be coordinated with back-end systems.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-The_XTS_API-API_for_the_Atomic_Transaction_protocol">
+		<title>API for the Atomic Transaction protocol</title>
+		<para>
+			The following classes and interfaces are located within the <package>com.arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-Vote">
+			<title>Vote</title>
+			<para>
+				During the two-phase commit protocol, a participant will be asked to vote on whether or not it can prepare to confirm the work that it controls. It must return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>Prepared</emphasis>: the participant indicates that it can prepare if asked to by the coordinator. It will not have committed at this stage however, since it does not know what the final outcome will be.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>Aborted</emphasis>: the participant indicates that it cannot prepare and has in fact rolled back. The participant should not expect to get a second phase message.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>ReadOnly</emphasis>: the participant indicates that the work it controls has not made any changes to state that require it to be informed of the final outcome of the transaction. Essentially the participant is resigning from the transaction.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Thus a possible implementation of a 2PC participant’s prepare method may resemble the following:
+		</para>
+<screen>
+public Vote prepare () throws WrongStateException, SystemException
+{
+	// Some participant logic here
+	
+	if(/* some condition based on the outcome of the business logic */)
+	{
+		// Vote to confirm
+		return new com.arjuna.wst.Prepared();
+	}
+	else if(/*some other condition based on the outcome of the business logic*/)
+	{
+		// Resign
+		return new com.arjuna.wst.ReadOnly();
+	}
+	else
+	{
+		// Vote to cancel
+		return new com.arjuna.wst.Aborted();
+	}
+}
+</screen>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-The_transaction_context">
+			<title>The transaction context</title>
+			<para>
+				A transaction is typically represented by some unique identifier and a reference to the coordinator which manages the transaction, for example, a URL. XTS allows transactions to be nested such that a transaction hierarchy (tree) may be formed. Thus, a transaction context may be a set of transactions, with the top-most transaction the root parent (superior).
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-TxContext">
+			<title>TxContext</title>
+			<para>
+				<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a transaction context.
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>valid</emphasis>: this indicates whether or not the contents are valid.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>equals</emphasis>: can be used to compare two instances.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-UserTransaction">
+			<title>UserTransaction</title>
+			<para>
+				The <classname>com.arjuna.wst.UserTransaction</classname> is the class that most users (for example, clients and services) will see. This isolates them from the underlying protocol-specific aspects of the XTS implementation. Importantly, a UserTransaction does not represent a specific transaction, but rather is responsible for providing access to an implicit per-thread transaction context; it is similar to the UserTransaction in the JTA specification. Therefore, all of the UserTransaction methods implicitly act on the current thread of control.
+			</para>
+		</formalpara>
+		<para>
+			A new transaction is begun and associated with the invoking thread by using the begin method. If there is already a transaction associated with the thread then the <code>WrongStateException</code> exception is thrown. Upon success, this operation associates the newly created transaction with the current thread.
+		</para>
+		<para>
+			The transaction is committed by the commit method. This will execute the Volatile2PC and Durable2PC protocols prior to returning. If there is no transaction associated with the invoking thread then <code>UnknownTransactionException</code> is thrown. If the transaction ultimately rolls back then the <code>TransactionRolledBackException</code> is thrown. When complete, this operation disassociates the transaction from the current thread such that it becomes associated with no transaction.
+		</para>
+		<para>
+			The <code>rollback</code> operation will terminate the transaction and return normally if it succeeded, while throwing an appropriate exception if it didn’t. If there is no transaction associated with the invoking thread then <code>UnknownTransactionException</code> is thrown.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-UserTransactionFactory">
+			<title>UserTransactionFactory</title>
+			<para>
+				UserTransactions are obtained from a <code>UserTransactionFactory</code>.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-TransactionManager">
+			<title>TransactionManager</title>
+			<para>
+				The <interfacename>TransactionManager</interfacename> interface represents the service/container/participant’s (service-side users) typical way in which to interact with the underlying transaction service implementation. As with <interfacename>UserTransaction</interfacename> a <interfacename>TransactionManager</interfacename> does not represent a specific transaction, but rather is responsible for providing access to an implicit per-thread transaction context.
+			</para>
+		</formalpara>
+		<para>
+			A thread of control may require periods of non-transactionality so that it may perform work that is not associated with a specific transaction. In order to do this it is necessary to disassociate the thread from any transactions. The suspend method accomplishes this, returning a <code>TxContext</code> instance, which is a handle on the transaction. The thread is then no longer associated with any transaction.
+		</para>
+		<para>
+			The <methodname>resume</methodname> method can be used to (re-)associate a thread with a transaction(s) via its <code>TxContext</code>. Prior to association, the thread is disassociated with any transaction(s) with which it may be currently associated. If the <code>TxContext</code> is null, then the thread is associated with no transaction. The <code>UnknownTransactionException</code> exception is thrown if the transaction that the <code>TxContext</code> refers to is invalid in the scope of the invoking thread.
+		</para>
+		<para>
+			The <methodname>currentTransaction</methodname> method returns the <code>TxContext</code> for the current transaction, or null if there is none. Unlike suspend, this method does not disassociate the current thread from the transaction(s). This can be used to enable multiple threads to execute within the scope of the same transaction.
+		</para>
+		<para>
+			In order to register and resign participants with a transaction, the container or participant must use:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified participant with current transaction such that it will participate in the Volatile2PC protocol; a unique identifier for the participant is also required. If there is no transaction associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the transaction is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified participant with current transaction such that it will participate in the 2PC protocol; a unique identifier for the participant is also required. If there is no transaction associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the transaction is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-TransactionFactory">
+			<title>TransactionFactory</title>
+			<para>
+				TransactionManagers are obtained from a <code>TransactionFactory</code>.
+			</para>
+		</formalpara>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-The_XTS_API-API_for_the_Business_Activity_protocol">
+		<title>API for the Business Activity protocol</title>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-UserBusinessActivity">
+			<title>UserBusinessActivity</title>
+			<para>
+				The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class that most users (for example, clients and services) will see. This isolates them from the underlying protocol-specific aspects of the XTS implementation. Importantly, a <code>UserBusinessActivity</code> does not represent a specific business activity, but rather is responsible for providing access to an implicit per-thread activity. Therefore, all of the <code>UserBusinessActivity</code> methods implicitly act on the current thread of control.
+			</para>
+		</formalpara>
+		<para>
+			A new business activity is begun and associated with the invoking thread by using the begin method. If there is already an activity associated with the thread then the <code>WrongStateException</code> exception is thrown. Upon success, this operation associates the newly created activity with the current thread.
+		</para>
+		<para>
+			The business activity is completed successfully by the close method. This will execute the <code>BusinessAgreementWithParticipantCompletion</code> protocol prior to returning. If there is no activity associated with the invoking thread then <code>UnknownTransactionException</code> is thrown. If the activity ultimately cancels then the <code>TransactionRolledBackException</code> is thrown. When complete, this operation disassociates the business activity from the current thread such that it becomes associated with no activity.
+		</para>
+		<para>
+			The cancel operation will terminate the business activity and return normally if it succeeded, while throwing an appropriate exception if it didn’t. If there is no activity associated with the invoking thread then <code>UnknownTransactionException</code> is thrown. Any participants that had previously completed will be informed to compensate for their work.
+		</para>
+		<para>
+			Some participants may have registered for the <code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which requires the coordinator or application to inform them when all work that they need to do within the scope of a business activity has been performed. The application should therefore use the complete method to inform these participants.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-UserBusinessActivityFactory">
+			<title>UserBusinessActivityFactory</title>
+			<para>
+				UserBusinessActivities are obtained from a <code>UserBusinessActivityFactory</code>.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-BusinessActivityManager">
+			<title>BusinessActivityManager</title>
+			<para>
+				The <interfacename>BusinessActivityManager</interfacename> interface represents the service/container/participant’s (service-side users) typical way in which to interact with the underlying business activity service implementation. As with <interfacename>UserBusinessActivity</interfacename> a <interfacename>BusinessActivityManager</interfacename> does not represent a specific activity, but rather is responsible for providing access to an implicit per-thread activity.
+			</para>
+		</formalpara>
+		<para>
+			A thread of control may require periods of non-transactionality so that it may perform work that is not associated with a specific activity. In order to do this it is necessary to disassociate the thread from any business activities. The suspend method accomplishes this, returning a <code>TxContext</code> instance, which is a handle on the activity. The thread is then no longer associated with any activity.
+		</para>
+		<para>
+			The <methodname>resume</methodname> method can be used to (re-)associate a thread with an activity (or activities) via its TxContext. Prior to association, the thread is disassociated with any activity with which it may be currently associated. If the <code>TxContext</code> is null, then the thread is associated with no activity. The <code>UnknownTransactionException</code> exception is thrown if the business activity that the TxContext refers to is invalid in the scope of the invoking thread.
+		</para>
+		<para>
+			The <methodname>currentTransaction</methodname> method returns the <code>TxContext</code> for the current business activity, or null if there is none. Unlike suspend, this method does not disassociate the current thread from the activity. This can be used to enable multiple threads to execute within the scope of the same business activity.
+		</para>
+		<para>
+			In order to register and resign participants with a business activity, the container or participant must use:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: enlist the specified participant with current business activity such that it will participate in the <code>BusinessAgreementWithParticipantCompletion</code> protocol; a unique identifier for the participant is also required. If there is no business activity associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the activity is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: enlist the specified participant with current activity such that it will participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> protocol; a unique identifier for the participant is also required. If there is no business activity associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the activity is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-BusinessActivityManagerFactory">
+			<title>BusinessActivityManagerFactory</title>
+			<para>
+				BusinessActivityManagers are obtained from a <code>BusinessActivityManagerFactory</code>.
+			</para>
+		</formalpara>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,43 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Transactional_Web_Services">
+	<title>Transactional Web Services</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Transactional_Web_Services-Introduction">
+		<title>Introduction</title>
+		<para>
+			This chapter describes how to provide transactional support for new and existing Web services using the service-side facilities of XTS. It shows how new services can be made transactional with no additional programming, and how existing services can be made WS-T transaction-aware in a non-invasive fashion.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Transactional_Web_Services-A_Transactional_Web_Service">
+		<title>A Transactional Web Service</title>
+		<para>
+			A Web service is a business-level entity. It encapsulates application logic needed to perform some domain-specific task, or is designed to delegate to a back-end system which executes that logic. Given it is part of application code, such non-functional requirements as transactionality should not impinge on its construction.
+		</para>
+		<para>
+			To support this notion, XTS provides a suite of components designed to work at the SOAP stack level, which deal with transactional matters on behalf of a Web service without requiring any changes to that service. In XTS two context handling components are registered with the SOAP server and deal with context management on behalf of the service without the service having to worry about context propagation issues itself. This is shown in the following figure.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Context_Handlers.png" format="PNG" />
+			</imageobject>
+			<caption>Context Handlers Registered with the SOAP Server</caption>
+		</mediaobject>
+		<para>
+			The detail of the context management that the context processor performs is unimportant to the Web service application logic, and is orthogonal to any work performed by any other protocol-specific context handlers too. However back-end systems which the Web service application logic uses (such as databases) are often interested in the front-end transaction context such that any operations invoked within its scope can be mapped onto a back-end transaction context. This is typically achieved at the back-end by wrapping a database driver in a veneer which implements both the interface of the original driver and hooks into the service-side API to access the transaction context details. The general architecture for this pattern is shown in the figure below.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Back-End_Integration.png" format="PNG" />
+			</imageobject>
+			<caption>General Pattern for Back-End Integration, Service Side</caption>
+		</mediaobject>
+		<para>
+			The missing element from this is the commit protocol which finally allows back-end work to be made durable or not at the end of a transaction. This is covered in the participant chapter where the participant/back-end relation is explored further.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,302 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Transactions_Overview">
+	<title>Transactions Overview</title>
+	<para>
+		Transactions have emerged as the dominant paradigm for coordinating interactions between parties in a distributed system, and in particular to manage applications that require concurrent access to shared data. Much of the JBossTS Web Service API is based on contemporary transaction APIs whose familiarity will enhance developer productivity and lessen the learning curve. While the following section provides the essential information that you should know before starting to use XTS for building transactional Web Services, it should not be treated as a definitive reference to all transactional technology.
+	</para>
+	<para>
+		A classic transaction is a unit of work that either completely succeeds, or fails with all partially completed work being undone. When a transaction is committed, all changes made by the associated requests are made durable, normally by committing the results of the work to a database. If a transaction should fail and is rolled back, all changes made by the associated work are undone. Transactions in distributed systems typically require the use of a transaction manager that is responsible for coordinating all of the participants that are part of the transaction.
+	</para>
+	<para>
+		The main components involved in using and defining transactional Web Services using XTS are illustrated in Figure 1.
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				A Transaction Service: The Transaction Service captures the model of the underlying transaction protocol and coordinates parties affiliated with the transaction according to that model.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A Transaction API: Provides an interface for transaction demarcation and the registration of participants.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A Participant: The entity that cooperates with the transaction service on behalf of its associated business logic.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The Context: Captures the necessary details of the transaction such that participants can enlist within its scope.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Web_Services.png" format="PNG" />
+		</imageobject>
+		<caption>Web Services and XTS</caption>
+	</mediaobject>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-The_Coordinator">
+		<title>The Coordinator</title>
+		<para>
+			Associated with every transaction is a coordinator, which is responsible for governing the outcome of the transaction. The coordinator may be implemented as a separate service or may be co-located with the user for improved performance. Each coordinator is created by the transaction manager service, which is in effect a factory for those coordinators.
+		</para>
+	</formalpara>
+	<para>
+		A coordinator communicates with enrolled participants to inform them of the desired termination requirements, for instance, whether they should accept (for example, confirm) or reject (for example, cancel) the work done within the scope of the given transaction. For example, whether to purchase the (provisionally reserved) flight tickets for the user or to release them. An application/client may wish to terminate a transaction in a number of different ways (for example, confirm or cancel). However, although the coordinator will attempt to terminate in a manner consistent with that desired by the client, it is ultimately the interactions between the coordinator and the participants that will determine the actual final outcome.
+	</para>
+	<para>
+		A transaction manager is typically responsible for managing coordinators for many transactions. The initiator of the transaction (for example, the client) communicates with a transaction manager and asks it to start a new transaction and associate a coordinator with the transaction. Once created, the context can be propagated to Web services in order for them to associate their work with the transaction.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-The_Transaction_Context">
+		<title>The Transaction Context</title>
+		<para>
+			In order for a transaction to span a number of services, certain information has to be shared between those services in order to propagate information about the transaction. This information is known as the Context. Using XTS, the context is automatically propagated and processed by transaction-aware components of an application. Though XTS removes most of the work associated with propagating contexts, it is still instructive to understand what information is captured in a context:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				A transaction identifier which guarantees global uniqueness for an individual transaction;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The transaction coordinator location or endpoint address so participants can be enrolled.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Context_Flow.png" format="PNG" />
+		</imageobject>
+		<caption>Web Services and Context Flow</caption>
+	</mediaobject>
+	<para>
+		As shown in Figure 2, whenever an application message is sent, the XTS Client API automatically creates a context and embeds it into the message. Similarly, any transaction-aware services are able to extract that context using the XTS service-side infrastructure and use it to perform work within the context of a particular transaction – even though that transaction was initiated elsewhere on the Web! The value of this approach is that the business logic contained within the client application and services are not peppered with transaction-processing code.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-ACID_Transactions">
+		<title>ACID Transactions</title>
+		<para>
+			Traditionally, transaction processing systems support ACID properties. ACID is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work has traditionally been considered transactional only if the ACID properties are maintained:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Atomicity: The transaction executes completely or not at all.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Consistency: The effects of the transaction preserve the internal consistency of an underlying data structure.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Isolated: The transaction runs as if it were running alone with no other transactions running and is not visible to other transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Durable: the transaction’s results will not be lost in the event of a failure.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Two_Phase_Commit">
+		<title>Two-Phase Commit</title>
+		<para>
+			The classical two-phase commit approach is the bedrock of JBossTS (and more generally of Web Services transactions). Two-phase commit provides coordination of parties that are involved in a transaction. In general, the flow of a two-phase commit transaction is as follows:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				A transaction is started, and some work is performed.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Once the work is finished, the two-phase commit begins.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The coordinator (transaction manager) of the transaction asks each resource taking part in the transaction whether it is prepared to commit.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If all resources respond positively, the coordinator instructs all work performed to be made durable (usually committed to a database).
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If not, all work performed is rolled back (undone) such that the underlying data structures are in their original states.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Commit_Protocol.png" format="PNG" />
+		</imageobject>
+		<caption>The Two-Phase Commit Protocol</caption>
+	</mediaobject>
+	<note>
+		<para>
+			During two-phase commit transactions, coordinators and resources keep track of activity in non-volatile data stores so that they can recover in the case of a failure.
+		</para>
+	</note>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-The_synchronization_protocol">
+		<title>The synchronization protocol</title>
+		<para>
+			As well as the two-phase commit protocol, traditional transaction processing systems employ an additional protocol, often referred to as the synchronization protocol. If you recall the original ACID properties, then you’ll remember that Durability is important in the case where state changes have to be available despite failures. What this means is that applications interact with a persistence store of some kind (e.g., a database) and this can impose a significant overhead – disk access is orders of magnitude slower than access to main computer memory.
+		</para>
+	</formalpara>
+	<para>
+		One apparently obvious solution to this problem would be to cache the state in main memory and only operate on that for the duration of a transaction. Unfortunately you’d then need some way of being able to flush the state back to the persistent store before the transaction terminates, or risk losing the full ACID properties. This is what the synchronization protocol does, with Synchronization participants.
+	</para>
+	<para>
+		Synchronizations are informed that a transaction is about to commit, so they can, for example, flush cached state, which may be being used to improve performance of an application, to a durable representation prior to the transaction committing. They are then informed when the transaction has completed and in what state it completed.
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Synchronizations essentially turn the two-phase commit protocol into a four-phase protocol:
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Before the transaction starts the two-phase commit, all registered Synchronizations are informed. Any failure at this point will cause the transaction to roll back.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The coordinator then conducts the normal two-phase commit protocol.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Once the transaction has terminated, all registered Synchronizations are informed. However, this is a courtesy invocation because any failures at this stage are ignored: the transaction has terminated so there’s nothing to affect.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		Unlike the two-phase commit protocol, the synchronization protocol does not have the same failure requirements. For example, Synchronization participants don’t need to make sure they can recover in the event of failures; this is because any failure before the two-phase commit protocol completes means the transaction will roll back, and failures after it has completed can’t affect the data the Synchronization participants were managing.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Optimizations_to_the_protocol">
+		<title>Optimizations to the protocol</title>
+		<para>
+			There are several variants to the standard two-phase commit protocol that are worth knowing about because they can have an impact on performance and failure recovery. We shall briefly describe those that are the most common variants on the protocol:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Presumed abort: if a transaction is going to roll back then it may simply record this information locally and tell all enlisted participants. Failure to contact a participant has no affect on the transaction outcome; the transaction is effectively informing participants as a courtesy. Once all participants have been contacted the information about the transaction can be removed. If a subsequent request for the status of the transaction occurs there will be no information available and the requestor can assume that the transaction has aborted (rolled back). This optimization has the benefit that no information about participants need be made persistent until the transaction has decided to commit (i.e., progressed to the end of the prepare phase), since any failure prior to this point will be assumed to be an abort of the transaction.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				One-phase: if there is only a single participant involved in the transaction, the coordinator need not drive it through the prepare phase. Thus, the participant will simply be told to commit and the coordinator need not record information about the decision since the outcome of the transaction is solely down to the participant.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Read-only: when a participant is asked to prepare, it can indicate to the coordinator that no information or data that it controls has been modified during the transaction. Such a participant does not need to be informed about the outcome of the transaction since the fate of the participant has no affect on the transaction. As such, a read-only participant can be omitted from the second phase of the commit protocol.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Non_atomic_transactions_and_heuristic_outcomes">
+		<title>Non-atomic transactions and heuristic outcomes</title>
+		<para>
+			In order to guarantee atomicity, the two-phase commit protocol is necessarily blocking. What this means is that as a result of failures, participants may remain blocked for an indefinite period of time even if failure recovery mechanisms exist. Some applications and participants simply cannot tolerate this blocking.
+		</para>
+	</formalpara>
+	<para>
+		To break this blocking nature, participants that have got past the prepare phase are allowed to make autonomous decisions as to whether they commit or rollback: such a participant must record this decision in case it is eventually contacted to complete the original transaction. If the coordinator eventually informs the participant of the transaction outcome and it is the same as the choice the participant made, then there’s no problem. However, if it is contrary, then a non-atomic outcome has obviously happened: a heuristic outcome.
+	</para>
+	<para>
+		How this heuristic outcome is reported to the application and resolved is usually the domain of complex, manually driven system administration tools, since in order to attempt an automatic resolution requires semantic information about the nature of participants involved in the transactions.
+	</para>
+	<para>
+		Precisely when a participant makes a heuristic decision is obviously implementation dependant. Likewise, the choice the participant makes (to commit or to roll back) will depend upon the implementation and possibly the application/environment in which it finds itself. The possible heuristic outcomes are:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Heuristic rollback: the commit operation failed because some or all of the participants unilaterally rolled back the transaction.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Heuristic commit: an attempted rollback operation failed because all of the participants unilaterally committed. This may happen if, for example, the coordinator was able to successfully prepare the transaction but then decided to roll it back (for example, it could not update its log) but in the meanwhile the participants decided to commit.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Heuristic mixed: some updates (participants) were committed while others were rolled back.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Heuristic hazard: the disposition of some of the updates is unknown. For those which are known, they have either all been committed or all rolled back.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		Heuristic decisions should be used with care and only in exceptional circumstances since there is the possibility that the decision will differ from that determined by the transaction service and will thus lead to a loss of integrity in the system. Having to perform resolution of heuristics is something you should try to avoid, either by working with services/participants that don’t cause heuristics, or by using a transaction service that provides assistance in the resolution process.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-A_New_Transaction_Protocol">
+		<title>A New Transaction Protocol</title>
+		<para>
+			Many component technologies offer mechanisms for coordinating ACID transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, MTS/MSDTC). ACID transactions are not suitable for all Web services transactions since:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Classic ACID transactions are predicated on the idea that an organization that develops and deploys applications does so using their own infrastructure, typically an Intranet. Ownership meant transactions operated in a trusted and predictable manner. To assure ACIDity, potentially long-lived locks could be kept on underlying data structures during two-phase commit. Resources could be used for any period of time and released when the transaction was complete. In the Web services arena, these assumptions are no longer valid. One obvious reason is that the owners of data exposed through a Web service will refuse to allow their data to be locked for extended periods since to allow such locks invites denial-of-service.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				All application infrastructures are generally owned by a single party, systems using classical ACID transactions normally assume that participants in a transaction will obey the will of the transaction manager and only infrequently decide to make unilateral decisions which will hamper other participants in a transaction. On the contrary, Web services participating in a transaction can effectively decide to resign from the transaction at any time, and the consumer of the service generally has little in the way of quality of service guarantees to prevent this.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Adressing_the_Problems_of_Transactioning_in_Loosely_Coupled_Systems">
+		<title>Adressing the Problems of Transactioning in Loosely Coupled Systems</title>
+		<para>
+			Though extended transaction models which relax the ACID properties have been proposed over the years, to implement these concepts for the Web services architecture WS-T provides a new transaction protocol. XTS is designed to accommodate four underlying requirements inherent in any loosely coupled architecture like Web services:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Ability to handle multiple successful outcomes to a transaction, with the ability to involve operations whose effects may not be isolated or durable;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Coordination of autonomous parties whose relationships are governed by contracts rather than the dictates of a central design authority;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Discontinuous service, where parties are anticipated to suffer outages during their lifetime, and coordinated work must be able to survive such outages;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Interoperation using XML over multiple communication protocols – XTS chooses to use SOAP encoding carried over HTTP for the first release and other SOAP-friendly transports for future releases.
+			</para>
+		</listitem>
+	</itemizedlist>
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,354 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview">
+	<title>WS-C, WS-Atomic Transaction and WS-Business Activity Overview</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-Introduction">
+		<title>Introduction</title>
+		<para>
+			This section provides fundamental concepts associated with WS-C, WS-Atomic Transaction and WS-Business Activity. All of these concepts are defined in the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-C, WS-Atomic Transaction and WS-Business Activity principles are discussed throughout this guide.
+		</para>
+		<note>
+			<para>
+				If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business Activity specifications then you may want to just skim through this part of the manual.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-WS_Coordination">
+		<title>WS-Coordination</title>
+		<para>
+			In general terms, coordination is the act of one entity (known as the coordinator) disseminating information to a number of participants for some domain-specific reason. This reason could be in order to reach consensus on a decision like in a distributed transaction protocol, or simply to guarantee that all participants obtain a specific message, as occurs in a reliable multicast environment. When parties are being coordinated, information known as the coordination context is propagated to tie together operations which are logically part of the same coordinated work or activity. This context information may flow with normal application messages, or may be an explicit part of a message exchange and is specific to the type of coordination being performed.
+		</para>
+		<para>
+			The fundamental idea underpinning WS-Coordination is that there is a generic need for a coordination infrastructure in a Web services environment. The WS-Coordination specification defines a framework that allows different coordination protocols to be plugged-in to coordinate work between clients, services and participants, as shown in Figure 4.
+		</para>
+		<para>
+			At this level, an activity is minimally specified and is simply created, made to run, and then completed.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-C_Architecture.png" format="PNG" />
+			</imageobject>
+			<caption>WS-C architecture</caption>
+		</mediaobject>
+		<para>
+			Whatever coordination protocol is used, and in whatever domain it is deployed, the same generic requirements are present:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Instantiation (or activation) of a new coordinator for the specific coordination protocol, for a particular application instance;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Registration of participants with the coordinator, such that they will receive that coordinator’s protocol messages during (some part of) the application’s lifetime;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Propagation of contextual information between Web services that comprise the application;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					An entity to drive the coordination protocol through to completion.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The first three of these points are directly the concern of WS-Coordination while the fourth is the responsibility of a third-party entity, usually the client application that controls the application as a whole. These four WS-Coordination roles and their interrelationships are shown in Figure 5.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-C_Infrastructure.png" format="PNG" />
+			</imageobject>
+			<caption>WS-C infrastructure</caption>
+		</mediaobject>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Coordination-Activation">
+			<title>Activation</title>
+			<para>
+				The WS-Coordination framework exposes an Activation Service which supports the creation of coordinators for specific protocols and their associated contexts. The process of invoking an activation service is done asynchronously, and so the specification defines both the interface of the activation service itself, and that of the invoking service, so that the activation service can call back to deliver the results of the activation – namely a context that identifies the protocol type and coordinator location. These interfaces are presented in Figure 6, where the activation service has a one-way operation that expects to receive a <code>CreateCoordinationContext</code> message and correspondingly the service that sent the <code>CreateCoordinationContext</code> message expects to be called back with a <code>CreateCoordinationContextResponse</code> message, or informed of a problem via an <code>Error</code> message.
+			</para>
+		</formalpara>
+<screen>
+&lt;!-- Activation Service portType Declaration --&gt;
+&lt;wsdl:portType name="ActivationCoordinatorPortType"&gt;
+	&lt;wsdl:operation name="CreateCoordinationContext"&gt;
+		&lt;wsdl:input 
+		message="wscoor:CreateCoordinationContext"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;
+	
+&lt;!-- Activation Requester portType Declaration --&gt;
+&lt;wsdl:portType name="ActivationRequesterPortType"&gt;
+	&lt;wsdl:operation 
+		name="CreateCoordinationContextResponse"&gt;
+		&lt;wsdl:input 
+		message="wscoor:CreateCoordinationContextResponse"/&gt;
+	&lt;/wsdl:operation&gt;
+	&lt;wsdl:operation name="Error"&gt;
+		&lt;wsdl:input message="wscoor:Error"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;\
+</screen>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Coordination-Registration">
+			<title>Registration</title>
+			<para>
+				Once a coordinator has been instantiated and a corresponding context created by the activation service, a Registration Service is created and exposed. This service allows participants to register to receive protocol messages associated with a particular coordinator. Like the activation service, the registration service assumes asynchronous communication and so specifies WSDL for both registration service and registration requester, as shown below.
+			</para>
+		</formalpara>
+<screen>
+&lt;!-- Registration Service portType Declaration --&gt;
+&lt;wsdl:portType name="RegistrationCoordinatorPortType"&gt;
+	&lt;wsdl:operation name="Register"&gt;
+		&lt;wsdl:input message="wscoor:Register"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;
+	
+&lt;!-- Registration Requester portType Declaration --&gt;
+&lt;wsdl:portType name="RegistrationRequesterPortType"&gt;
+	&lt;wsdl:operation name="RegisterResponse"&gt;
+		&lt;wsdl:input message="wscoor:RegisterResponse"/&gt;
+	&lt;/wsdl:operation&gt;
+	&lt;wsdl:operation name="Error"&gt;
+		&lt;wsdl:input message="wscoor:Error"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;
+</screen>
+		<para>
+			When a participant is registered with a coordinator through the registration service, it receives messages that the coordinator sends (for example, “prepare to complete” and “complete” messages if a two-phase protocol is used); where the coordinator’s protocol supports it, participants can also send messages back to the coordinator.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Coordination-Completion">
+			<title>Completion</title>
+			<para>
+				The role of terminator is generally played by the client application, which at an appropriate point will ask the coordinator to perform its particular coordination function with any registered participants – to drive the protocol through to its completion. On completion, the client application may be informed of an outcome for the activity which may vary from simple succeeded/failed notification through to complex structured data detailing the activity’s status.
+			</para>
+		</formalpara>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-WS_Transaction">
+		<title>WS-Transaction</title>
+		<para>
+			In the past, making traditional transaction systems talk to one another was a holy grail that was rarely achieved. With the advent of Web services, there is an opportunity to leverage an unparalleled interoperability technology to splice together existing transaction processing systems that already form the backbone of enterprise level applications.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_Coordination_Foundations">
+			<title>WS-Coordination Foundations</title>
+			<para>
+				An important aspect of WS-Transaction that differentiates it from traditional transaction protocols is that a synchronous request/response model is not assumed. This model derives from the fact that WS-Transaction is, as shown in the figure below, layered upon the WS-Coordination protocol whose own communication patterns are asynchronous by default.
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-Coordination_Foundations.png" format="PNG" />
+			</imageobject>
+			<caption>WS-Coordination WS-Atomic Transaction and WS-Business Activity</caption>
+		</mediaobject>
+		<para>
+			Web Services Coordination provides a generic framework for specific coordination protocols, like WS-Transaction, to be plugged in. Recall that WS-Coordination provides only context management – it allows contexts to be created and activities to be registered with those contexts. WS-Transaction leverages the context management framework provided by WS-Coordination in two ways. Firstly it extends the WS-Coordination context to create a transaction context. Secondly, it augments the activation and registration services with a number of additional services (Completion, CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, and BusinessAgreementWithComplete) and two protocol message sets (one for each of the transaction models supported in WS-Transaction) to build a fully-fledged transaction coordinator on top the WS-Coordination protocol infrastructure.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_Transaction_Architecture">
+			<title>WS-Transaction Architecture</title>
+			<para>
+				WS-Transaction supports the notion of the service and participant as distinct roles, making the distinction between a transaction-aware service and the participants that act on behalf of the service during a transaction: transactional services deal with business-level protocols, while the participants handle the underlying WS-Transaction protocols, as shown above.
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-Transaction_Global_View.png" format="PNG" />
+			</imageobject>
+			<caption>WS-Transaction Global View</caption>
+		</mediaobject>
+		<para>
+			A transaction-aware service encapsulates the business logic or work that is required to be conducted within the scope of a transaction. This work cannot be confirmed by the application unless the transaction also commits and so control is ultimately removed from the application and placed into the transaction’s domain.
+		</para>
+		<para>
+			The participant is the entity that, under the dictates of the transaction coordinator, controls the outcome of the work performed by the transaction-aware Web service. In the figure above each service is shown with one associated participant that manages the transaction protocol messages on behalf of its service, while in the figure below, there is a close-up view of a single service, and a client application with their associated participants.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Transactional_Service_and_Participant.png" format="PNG" />
+			</imageobject>
+			<caption>Transactional Service and Participant</caption>
+		</mediaobject>
+		<para>
+			The transaction-aware Web service and its participant both serve a shared transactional resource, and there is a control relationship between them through some API - which on the Java platform is JAXTX. In the example shown in the figure above, it is assumed that the database is accessed through a transactional JDBC database driver, where SQL statements are sent to the database for processing via that driver, but where those statements will be tentative and only commit if the transaction does. In order to do this, the driver/database will associate a participant with the transaction which will inform the database of the transaction outcome. Since all transactional invocations on the Web service carry a transaction context, the participant working with the database is able to identify the work that the transactional service did within the scope of a specific transaction and either commit or rollback the work.
+		</para>
+		<para>
+			At the client end, things are less complex. Through its API, the client application registers a participant with the transaction through which it controls transaction termination.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_Transaction_Models">
+			<title>WS-Transaction Models</title>
+			<para>
+				Given that traditional transaction models are not appropriate for Web services, the following question must be posed, “what type of model or protocol is appropriate?” The answer to that question is that that no one specific protocol is likely to be sufficient, given the wide range of situations that Web service transactions are likely to be deployed within. Hence the WS-Transaction specification proposes two distinct models, where each supports the semantics of a particular kind of B2B interaction. The following sections shall discuss these two WS-Transaction models.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				As with WS-Coordination, the two WS-Transaction models are extensible allowing implementations to tailor the protocols as they see fit (for example, to suit their deployment environments).
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-Atomic_Transactions_AT">
+			<title>Atomic Transactions (AT)</title>
+			<para>
+				An atomic transaction or AT is similar to traditional ACID transactions and intended to support short-duration interactions where ACID semantics are appropriate. Within the scope of an AT, services typically enroll transaction-aware resources, such as databases and message queues, indirectly as participants under the control of the transaction. When the transaction terminates, the outcome decision of the AT is then propagated to each enlisted resource via the participant, and the appropriate commit or rollback actions are taken by each.
+			</para>
+		</formalpara>
+		<para>
+			This protocol is very similar to those employed by traditional transaction systems that already form the backbone of an enterprise. It is assumed that all services (and associated participants) provide ACID semantics and that any use of atomic transactions occurs in environments and situations where this is appropriate: in a trusted domain, over short durations.
+		</para>
+		<para>
+			To begin an atomic transaction, the client application firstly locates a WS-Coordination coordinator Web service that supports WS-Transaction. Once located, the client sends a WS-Coordination CreateCoordinationContext message to the activation service specifying http://schemas.xmlsoap.org/ws/2004/10/wsat as its coordination type and will get back an appropriate WS-Transaction context from the activation service. The response to the CreateCoordinationContext message, the transaction context, has its CoordinationType element set to the WS-Atomic Transaction namespace, http://schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the atomic transaction coordinator endpoint (the WS-Coordination registration service) where participants can be enlisted.
+		</para>
+		<para>
+			After obtaining a transaction context from the coordinator, the client application then proceeds to interact with Web services to accomplish its business-level work. With each invocation on a business Web service, the client inserts the transaction context into a SOAP header block, such that each invocation is implicitly scoped by the transaction – the toolkits that support WS-Atomic Transaction-aware Web services provide facilities to correlate contexts found in SOAP header blocks with back-end operations.
+		</para>
+		<para>
+			Once all the necessary application level work has been completed, the client can terminate the transaction, with the intent of making any changes to the service state permanent. To do this, the client application first registers its own participant for the Completion protocol. Once registered, the participant can instruct the coordinator either to try to commit or rollback the transaction. When the commit or rollback operation has completed, a status is returned to the participant to indicate the outcome of the transaction.
+		</para>
+		<para>
+			While the completion protocol is straightforward, they hide the fact that in order to resolve to an outcome that several other protocols need to be executed.
+		</para>
+		<para>
+			The first of these protocols is the optional Volatile2PC. The Volatile2PC protocol is the WS-Atomic Transaction equivalent of the synchronization protocol we discussed earlier. It is typically executed where a Web service needs to flush volatile (cached) state, which may be being used to improve performance of an application, to a database prior to the transaction committing. Once flushed, the data will then be controlled by a two-phase aware participant.
+		</para>
+		<para>
+			All Volatile2PC participants are told that the transaction is about to complete (via the prepare message) and they can respond with either the prepared, aborted or readonly message; any failures at this stage will cause the transaction to rollback.
+		</para>
+		<para>
+			After Volatile2PC prepare, the next protocol to execute in WS-Atomic Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-phase commit) protocol is at the very heart of WS-Atomic Transaction and is used to bring about the necessary consensus between participants in a transaction such that the transaction can safely be terminated.
+		</para>
+		<para>
+			The two-phase commit protocol is used to ensure atomicity between participants, and is based on the classic two-phase commit with presumed abort technique. During the first phase, when the coordinator sends the prepare message, a participant must make durable any state changes that occurred during the scope of the transaction, such that these changes can either be rolled back or committed later. That is, any original state must not be lost at this point as the atomic transaction could still roll back. If the participant cannot prepare then it must inform the coordinator (via the aborted message) and the transaction will ultimately roll back. If the participant is responsible for a service that did not do any work during the course of the transaction, or at least did not do any work that modified any state, it can return the readonly message and it will be omitted from the second phase of the commit protocol. Otherwise, the prepared message is sent by the participant.
+		</para>
+		<para>
+			Assuming no failures occurred during the first phase, in the second phase the coordinator sends the commit message to participants, who will make permanent the tentative work done by their associated services.
+		</para>
+		<para>
+			If a transaction involves only a single participant, WS-Atomic Transaction supports a one-phase commit optimization. Since there is only one participant, its decisions implicitly reach consensus, and so the coordinator need not drive the transaction through both phases. In the optimized case, the participant will simply be told to commit and the transaction coordinator need not record information about the decision since the outcome of the transaction is solely down to that single participant.
+		</para>
+		<para>
+			The figure below<footnote>
+			<para>
+				Redrawn from the WS-Atomic Transaction specification.
+			</para>
+			</footnote> shows the state transitions of a WS-Atomic Transaction and the message exchanges between coordinator and participant; the coordinator generated messages are shown in the solid line, whereas the participant messages are shown by dashed lines.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Commit_State_Transitions.png" format="PNG" />
+			</imageobject>
+			<caption>Two-Phase Commit State Transitions</caption>
+		</mediaobject>
+		<para>
+			Once the 2PC protocol has finished, the Completion protocol that originally began the termination of the transaction can complete, and inform the client application whether the transaction was committed or rolled back. Additionally, the Volatile2PC protocol may complete.
+		</para>
+		<para>
+			Like the prepare phase of Volatile2PC, the final phase is optional and can be used to inform participants when the transaction has completed, typically so that they can release resources (for example, put a database connection back into the pool of connections).
+		</para>
+		<para>
+			Any registered Volatile2PC participants are invoked after the transaction has terminated and are told the state in which the transaction completed (the coordinator sends either the Committed or Aborted message). Since the transaction has terminated, any failures of participants at this stage are ignored –it is essentially a courtesy, and has no bearing on the outcome of the transaction.
+		</para>
+		<para>
+			Finally, after having gone through each of the stages in an AT, it is possible to see the intricate interweaving of individual protocols that goes to make up the AT as a whole in the following figure.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/AT_Model.png" format="PNG" />
+			</imageobject>
+			<caption>The AT Model</caption>
+		</mediaobject>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-Business_Activities_BA">
+			<title>Business Activities (BA)</title>
+			<para>
+				Most business-to-business applications require transactional support in order to guarantee consistent outcome and correct execution. These applications often involve long running computations, loosely coupled systems and components that do not share data, location, or administration and it is difficult to incorporate atomic transactions within such architectures. For example, an online bookshop may reserve books for an individual for a specific period of time, but if the individual does not purchase the books within that period they will be “put back onto the shelf” for others to buy. Furthermore, because it is not possible for anyone to have an infinite supply of stock, some online shops may appear to users to reserve items for them, but in fact may allow others to pre-empt that reservation (for instance, the same book may be “reserved” for multiple users concurrently); a user may subsequently find that the item is no longer available, or may have to be reorder!
 ed specially for them.
+			</para>
+		</formalpara>
+		<para>
+			A business activity or BA is designed specifically for these kinds of long-duration interactions, where exclusively locking resources is impossible or impractical. In this model services are requested to do work, and where those services have the ability to undo any work, they inform the BA such that if the BA later decides the cancel the work (for instance if the business activity suffers a failure), it can instruct the service to execute its undo behavior. The key point for Business Activities is that how services do their work and provide compensation mechanisms is not the domain of the WS-Business Activity specification, but an implementation decision for the service provider.
+		</para>
+		<para>
+			The WS- Business Activity simply defines a protocol for Web services-based applications to enable existing business processing and workflow systems to wrap their proprietary mechanisms and interoperate across implementations and business boundaries.
+		</para>
+		<para>
+			A business activity may be partitioned into scopes, where a scope is a business task or unit of work using a collection of Web services. Such scopes can be nested to arbitrary degrees, forming parent and child relationships, where a parent scope has the ability to select which child tasks are to be included in the overall outcome protocol for a specific business activity, and so clearly non-atomic outcomes are possible. In a similar manner to traditional nested transactions, if a child task experiences an error, it can be caught by the parent who may be able to compensate and continue processing.
+		</para>
+		<para>
+			When a child task completes it can either leave the business activity or signal to the parent that the work it has done can be compensated later. In the latter case, the compensation task may be called by the parent should it ultimately need to undo the work performed by the child.
+		</para>
+		<para>
+			Unlike the WS-Atomic Transaction protocol model, where participants inform the coordinator of their state only when asked, a task within a business activity can specify its outcome to the parent directly without waiting for a request. This feature is useful when tasks fail such that the notification can be used by business activity exception handler to modify the goals and drive processing forward without having to meekly wait until the end of the transaction to admit to having failed – a well designed Business Activities should be proactive, if it is to perform well.
+		</para>
+		<para>
+			Underpinning all of this are three fundamental assumptions:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					All state transitions are reliably recorded, including application state and coordination metadata (the record of sent and received messages);
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					All request messages are acknowledged, so that problems are detected as early as possible. This avoids executing unnecessary tasks and can also detect a problem earlier when rectifying it is simpler and less expensive;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					As with atomic transactions, a response is defined as a separate operation and not as the output of the request. Message input-output implementations will typically have timeouts that are too short for some business activity responses. If the response is not received after a timeout, it is resent. This is repeated until a response is received. The request receiver discards all but one identical request received.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			As with atomic transactions, the business activity model has multiple protocols: <code>BusinessAgreementWithParticipantCompletion</code> and <code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the AT protocol which is driven from the coordinator down to participants, this protocol is driven much more from the participants upwards.
+		</para>
+		<para>
+			Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, a child activity is initially created in the Active state; if it finishes the work it was created to do and no more participation is required within the scope of the BA (such as when the activity operates on immutable data), then the child can unilaterally send an exited message to the parent. However, if the child task finishes and wishes to continue in the BA then it must be able to compensate for the work it has performed. In this case it sends a completed message to the parent and waits to receive the final outcome of the BA from the parent. This outcome will either be a close message, meaning the BA has completed successfully or a compensate message indicating that the parent activity requires that the child task reverse its work.
+		</para>
+		<para>
+			The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is identical to the <code>BusinessAgreementWithParticipantCompletion</code> protocol with the exception that the child cannot autonomously decide to end its participation in the business activity, even if it can be compensated. Rather the child task relies upon the parent to inform it when the child has received all requests for it to perform work which the parent does by sending the complete message to the child. The child then acts as it does in the <code>BusinessAgreementWithParticipantCompletion</code> protocol.
+		</para>
+		<para>
+			The crux of the BA model compared to the AT model is that is allows the participation of services that cannot or will not lock resources for extended periods.
+		</para>
+		<para>
+			While the full ACID semantics are not maintained by a BA, consistency can still be maintained through compensation, though the task of writing correct compensating actions (and thus overall system consistency) is delegated to the developers of the services under control of the BA. Such compensations may use backward error recovery, but will typically employ forward recovery.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-Application_Messages">
+			<title>Application Messages</title>
+			<para>
+				Application messages are the requests and responses that are sent between parties that constitute the work of a business process. Any such messages are considered opaque by XTS, and there is no mandatory message format, protocol binding, or encoding style so the developer is free to use any appropriate Web services protocol. In XTS, the transaction context is propagated within the headers of SOAP messages.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				XTS provides out-of-box support for service developers building WS-T-aware services on the JBoss, Weblogic and Glue platforms1. The provision of interceptors for automatic context handling at both client and service significantly simplifies the developer’s workload, allowing the developer to concentrate on writing the business logic without having to worry about the transactional infrastructure getting in the way. The interceptors simply add and remove context elements to application messages without altering the semantics of those messages. Any service which understands what to do with a WS-C context can use it, services which do not understand the context (those services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-aware) may ignore the context; the important point here is that XTS manages contexts without user intervention.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Messages">
+			<title>WS-C, WS-Atomic Transaction and WS-Business Activity Messages</title>
+			<para>
+				Although the application or service developer rarely sees or is interested in the messages exchanged by the transactional infrastructure (the transaction manager and any participants), it is useful to understand what kinds of exchanges occur so that the underlying model can be fitted in to an overall architecture.
+			</para>
+		</formalpara>
+		<para>
+			In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific messages are transported using SOAP messaging over HTTP. The types of messages that are propagated include instructions to perform standard transaction operations like begin, prepare.
+		</para>
+		<note>
+			<para>
+				XTS messages do not interfere in any way, shape, or form, with the application messages, and nor is there any requirement for an application to use the same transport as the transaction-specific messages. For example, it is quite reasonable for a client application to deliver its application-specific messages using SOAP RPC over SMTP even though under the covers the XTS messages are delivered using a different mechanism.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-Summary">
+		<title>Summary</title>
+		<para>
+			XTS provides a coordination infrastructure designed to allow transactions to run between enterprises across the Internet. That infrastructure is based on the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It supports two kinds of transactions: atomic transactions and business activities, which can be combined in arbitrary ways to map elegantly onto the transactional requirements of the underlying problem. The use of the whole infrastructure is simple due to the fact that its functionality is exposed through a simple transactioning API. Furthermore XTS provides all of the necessary plumbing to keep application and transactional aspects of an application separate, and to ensure that the transactionality of a system does not interfere with the functional aspects of the system itself.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/AT_Model.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/AT_Model.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Back-End_Integration.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Back-End_Integration.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_Protocol.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_Protocol.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_State_Transitions.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_State_Transitions.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Flow.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Flow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Handlers.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Handlers.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Transaction_Control.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Transaction_Control.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Transactional_Service_and_Participant.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Transactional_Service_and_Participant.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Architecture.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Architecture.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Infrastructure.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Infrastructure.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Coordination_Foundations.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Coordination_Foundations.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Transaction_Global_View.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Transaction_Global_View.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Web_Services.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/Web_Services.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-01 01:36+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Getting_Started.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Getting_Started.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Getting_Started.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,191 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Introduction.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Introduction.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Introduction.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,273 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/JBoss_Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Participants.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Participants.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Participants.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,457 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid ""
+"All Business Activity participants are instances of the following interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Stand-alone_Coordinator.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Stand-alone_Coordinator.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Stand-alone_Coordinator.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,34 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr ""
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/The_XTS_API.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/The_XTS_API.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/The_XTS_API.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,547 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactional_Web_Services.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactional_Web_Services.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactional_Web_Services.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,106 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactions_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactions_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactions_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,654 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/es-ES/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,950 @@
+# Language es-ES translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-01 01:36+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Getting_Started.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Getting_Started.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Getting_Started.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,191 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Introduction.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Introduction.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Introduction.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,273 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/JBoss_Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Participants.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Participants.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Participants.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,457 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid ""
+"All Business Activity participants are instances of the following interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Stand-alone_Coordinator.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Stand-alone_Coordinator.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Stand-alone_Coordinator.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,34 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr ""
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/The_XTS_API.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/The_XTS_API.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/The_XTS_API.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,547 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactional_Web_Services.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactional_Web_Services.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactional_Web_Services.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,106 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactions_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactions_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactions_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,654 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/fr-FR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,950 @@
+# Language fr-FR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-05 08:39+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "改訂履歴"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-05 08:40+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat ドキュメントチーム"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,49 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-05 08:47+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, fuzzy, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr "トランザクション Web サービスプログラマガイド"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, fuzzy, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+"このマニュアルはトランザクション Web サービスの為のプログラミングを説明してい"
+"ます。"
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr "ロゴ"
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Getting_Started.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Getting_Started.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Getting_Started.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,262 @@
+# translation of Getting_Started.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Getting_Started\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-17 17:14+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr "さあ始めましょう"
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr "パーティシパントの作成とデプロイ"
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+"パーティシパントとは、Web サービスの役目としてトランザクションマネージャに"
+"よって 駆動されるソフトウェアエンティティです。パーティシパントが最終的に 企"
+"業の IT インフラストラクチャの機能である Web サービスのバックエンドプロセッシ"
+"ング 設備の状態を反映するため、パーティシパントの作成は軽視することはできませ"
+"ん。それが表現する バックエンドシステムの詳細や、背後にあるトランザクションプ"
+"ロトコルの詳細を避けてパーティシパントの 実装について言えることは、その実装"
+"が、その参加するプロトコルに応じて以下のようなインターフェイスの1つを 実装し"
+"なければならないことです: <code>com.arjuna.wst.Durable2PCParticipant</"
+"code>、 <code>com.arjuna.wst.Volatile2PCParticipant</code>、\n"
+"  <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>、\n"
+" <code>com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</"
+"code>。"
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr "クライアントアプリケーションの作成"
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+"XTS を使用するクライアントアプリケーションには2つの側面があります。1つめは "
+"トランザクション宣言の側面で、2つめはそのクライアントアプリケーションが実行"
+"する ビジネス論理の側面です。トランザクション宣言の側面は XTS のクライアント "
+"API に よって自動的に担当されています。この API が、begin、commit、rollback "
+"などの 簡単なトランザクションディレクティブを提供して、それをクライアントがト"
+"ランザクションの 始動、管理、終了のために使用できます。表面下では API が"
+"(SOAP 経由で)トランザクション マネージャ上のオペレーションを呼び出します。"
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+"クライアントアプリケーションが、ビジネス論理 Web サービス上で呼び出しを 実行"
+"すると、XTS はその目的では API に指示しません。しかし、選択される API の種類"
+"に関係無く、XTS コンテキストが発信メッセージに挿入されて、 来信メッセージ用に"
+"取り出されて現在のスレッドと関連づけされる必要性が あります。これをユーザーの"
+"為に簡単にするために、XTS ソフトウェアは、この タスクを自動的に実行できるフィ"
+"ルターの3つのセットを付けて配布されています。 これらのフィルターは JAX-RPC "
+"と webMethods のクライアントライブラリを 使用して機能するように設計されていま"
+"す。"
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+"ユーザーが異なる SOAP クライアントインフラストラクチャを選択する場合、 クライ"
+"アントサイドのヘッダプロセッシングの責任はそれらに所在します。 このリリースで"
+"は XTS は JAX-RPC 又は webMethods 以外のものにはクライアントサイドインフラス"
+"トラクチャを提供しません。"
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr "JAX-RPC コンテキストハンドラ"
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+"JAX-RPC サーバーサイドのコンテキストハンドラをデプロイした web サービスに 登"
+"録するには、ハンドラチェーンがその web サービスデプロイメント記述子に 含まれ"
+"ていなければなりません。これが達成される方法の例としてデモアプリケーションの "
+"<filename>jboss/webservices.xml</filename> デプロイメント記述子を参照して下さ"
+"い。"
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+"クライアントアプリケーションで使用されている JAX-RPC クライアントサイドコンテ"
+"キスト ハンドラを登録するために、ハンドラチェーンが1つクライアント web.xml "
+"デプロイメント 記述子の service-ref  内の定義に含まれていなければなりません。"
+"これが達成される方法の 例としてデモアプリケーション <filename>jboss/client-"
+"web-app.xml</filename> を 参照して下さい。"
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr "webMethods コンテキストハンドラ"
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+"webMethods サーバーサイドのハンドラをデプロイした web サービスに登録 するため"
+"には、インバウンドとアウトバウンドのインターセプタが、web サービスの デプロイ"
+"メント記述子内で設定されていなければなりません。この設定方法の例として デモア"
+"プリケーションである <filename>RestaurantServiceAT.xml</filename> を 参照して"
+"ください。"
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+"webMethods クライアントサイドのコンテキストハンドラを登録するためには、 イン"
+"バウンドとアウトバウンドのインターセプタが <filename>glue-config.xml</"
+"filename> デプロイメント記述子内で設定されていなければなりません。 これが達成"
+"される方法の例としてデモアプリケーション glue-config.xml の soap インターセプ"
+"タを参照してください。"
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr "ヒント"
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+"複数の JBoss デプロイを同じマシン上で作成したい場合は、必要となる情報を 得る"
+"ために <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/MultipleInstances.htm"
+"\"><emphasis>複数インスタンスのセッティング</emphasis></ulink> を参照して下さ"
+"い。"
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr "要約"
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+"この章では、JBossTS の Web サービストランザクションコンポーネント内の 主なソ"
+"フトウェア部分のそれぞれを使用する方法について高度なレベルの概要を 提供してい"
+"ます。JBossTS により提供されている Web サービストランザクション マネージャは"
+"そのアーキテクチャの中心であり、ユーザーソフトウェアが直接 バインドしない唯一"
+"のソフトウェア部分です。XTS はユーザークライアントアプリケーションと Web サー"
+"ビスの両方の為に Web サービストランザクションコンテキストを扱う為の ヘッダプ"
+"ロセッシングインフラストラクチャを提供します。トランザクションパーティシパン"
+"トの 開発には、XTS が簡単なインターフェイスと必要なドキュメントハンドリング"
+"コードを提供します。"
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""
+"この章は概要のみとして意図されています。そしてより難しい細かい領域での 質問に"
+"は対応していません。このコンポーネントのより完璧な説明には、この ドキュメント"
+"にある他のより適切な章を参照して下さい。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Introduction.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Introduction.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Introduction.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,390 @@
+# translation of Introduction.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Introduction\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-17 11:06+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr "JBossTS Web トランザクションの概要"
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+"JBossTS の XML トランザクションサービスコンポーネント(短縮名:XTS)は ビジネ"
+"ストランザクション内で個人と公共の Web サービスの調整をサポートします。 その"
+"ため、XTS を理解するには、Web サービスに熟知していて、トランザクションの 知識"
+"が少々必要となります。この章では、XTS を紹介して Web サービス標準を形成する "
+"技術の簡単な概要を提供します。更にこの章ではトランザクション技術の土台の一部"
+"と それが Web サービスに応用される方法を探求していきます。この章で案内される"
+"内容の ほとんどは、このガイド内に渡って詳細に説明がありますが、Web サービスに"
+"関する 概要情報のみが提供されます。Web サービスの作成の経験がない方は Web "
+"サービス プラットフォームドキュメントを参考にして下さい。"
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+"XTS コンポーネントとして JBossTS は Web サービスのトランザクションソリュー"
+"ションを 提供します。XTS を使用すると、ビジネスパートナーは複雑なビジネストラ"
+"ンザクションを 制御された信頼できる方法で調整できます。JBossTS  Web サービス "
+"API は、WS-C、WS-Atomic Transaction、及び WS-Business Activity の使用をベース"
+"にしたトランザクショナル調整モデルを サポートします。WS-C は IBM、Microsoft "
+"そして BEA によって開発された汎用調整フレームワークであり、 WS-Atomic "
+"Transaction と WS-Business Activity はこのフレームワークを使用するトランザク"
+"ションプロトコルです。"
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+"Web サービスはモジュラーな再利用可能なソフトウェアコンポーネントであり、 Web "
+"サービスインターフェイスを介してビジネス機能を具現化することで作成 されます。"
+"Web サービスは、SOAP や HTTP などの標準ベースの技術を使用した 他の Web サービ"
+"スと直接通信します。これらの標準ベースの通信技術の使用によって Web サービスが"
+"顧客や、供給元、取引パートナー、独立したハードウェアオペレーション、 あるいは"
+"プログラミング環境からアクセスされるようになります。その結果は、今日の EDI と"
+"ビジネス対ビジネス(B2B) ソリューションに比較して多大な協調環境の向上を見せま"
+"す。これは、ビジネスがそれらの現在と将来のビジネスアプリケーションを、外部の"
+"パートナーに 簡単に発見できてアクセスできる Web サービスとして表面化できる環"
+"境となります。 "
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+"Web はそれ自身では、障害許容力はありません。実際、それが魅力的な開発ソリュー"
+"ションになる 理由のいくつかは、サービスベースのアプリケーションが欠点を持って"
+"いる理由にもなります:"
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+"Web サービスとして表面化しているアプリケーションコンポーネントはサードパー"
+"ティで 所有できます。このことは維持コスト面で利便性を提供しますが、同時にそれ"
+"らの動作に 独占的制御を持つ点で欠点ともなります。"
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+"Web サービスは通常リモートに配置されており、呼び出しの為に増大したネットワー"
+"ク 伝達により失敗するリスクを増加します。"
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+"高い依存性の要求を持つアプリケーションは、アプリケーションが Web サービスを "
+"消費する時に起こる可能性のあるエラーの効果を最低限にするメソッドを見つける必"
+"要が あります。そのような障害に対する安全対策としての1つのメソッドは、トラン"
+"ザクションの コンテキスト内でアプリケーションの Web サービスと通信することで"
+"す。トランザクションは 簡単に表現すると、全面的に完了するか又は障害時には同意"
+"済みの一定の状態に戻るような作業の単位です。 一定の状態に戻る場合は通常、作業"
+"が最初から発生していないかのように見えます。XTS の使用では、 トランザクション"
+"は複数の Web サービスに広がり、これは複数の企業に渡って実行された作業が トラ"
+"ンザクショナルサポート内で管理できることを意味します。"
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr "サービスベースプロセスの管理"
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+"XTS の使用により、複数の Web サービスに広がる複雑なビジネスプロセスを駆動す"
+"る トランザクションを作成できるようになります。現在の Web サービス標準はサー"
+"ビスの ハイレベルな調整の為の要求に対処していません。これは、通信の単独の要"
+"求/受信を使用する 今日の Web サービスアプリケーション内では、調整は一般的に問"
+"題がないからです。しかし、 複数のビジネスパートナー間で複数のサービスに従事す"
+"るアプリケーションにとっては、結果と して出る通信の調整と制御は重要になりま"
+"す。このことはサードパーティの Web サービスと 通信している場合に正式な保証に"
+"ついてはあまり期待できないことに気がつく時により明確に なります。"
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+"XTS はビジネスプロセス中にサービスの調整の為のインフラストラクチャを提供しま"
+"す。 プロセスをトランザクションとして構成することにより、ビジネスパートナーは"
+"信頼出来る 方法で複雑なビジネス交流に於ける協調が可能になり、使用するデータの"
+"整合性を 確保することができます。これは通常データベースへの複数の変更で現れま"
+"す。 しかし、web に対して直接伝統的なトランザクション/プロセッシングエンジン"
+"を表面化する通常の運営負担と欠点がなくなります。以下の例では、アプリケーショ"
+"ンが サービスベースのプロセスをトランザクションとして管理する方法をデモンスト"
+"レーションで 示します。 "
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+"例として使用するアプリケーションはユーザーがソシアルイベントを企画できるよう"
+"にします。 このアプリケーションはレストランのテーブル予約と観劇のチケット予約"
+"の担当をします。 両方の活動はクレジットカードの使用で支払いがされます。この例"
+"では、各サービスは 異なるサービスプロバイダによって提供される具現化した Web "
+"サービスを表現します。 XTS は劇場とレストランのサービスの間の交流を1つの長期"
+"実行(可能性のある)ビジネス トランザクションへと封入するために使用されます。"
+"このビジネストランザクションは レストランと劇場の両方での座席が予約されること"
+"を保証しなければなりません。1方の イベントが成立しなければユーザーは両方のイ"
+"ベントを拒否する能力があります。そうして 両方のサービスを元の状態に戻します。"
+"両方のイベントが成立できると、ユーザーのクレジット カードはチャージされて両方"
+"の座席が予約されます。お判りのように、両サービス間の交流は ある期間に渡って信"
+"頼できる方法で制御される必要があります。さらには、その管理はリモートで デプロ"
+"イされるいくつかのサードパーティのサービスに広がる必要があります。"
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+"トランザクションの後押しがないと、良くない結果が出る可能性があります。例え"
+"ば、 1方、又は両方の予約が不成立した場合でもユーザーのクレジットカードが"
+"チャージされたり するかもしれません。"
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+"この簡単な例は、複数の企業に渡ってビジネスプロセスをサポートすることに XTS が"
+"卓越している状況を表しています。この例はこのガイド内でより洗練 されて行きま"
+"す。そして XTS ディストリビューションでの標準のデモンストレーション として"
+"(ソースコードを含む)出現してきます。"
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr "Servlets"
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+"WS-C、WS-Atomic Transaction、及び WS-Business Activity のプロトコルは 伝統的"
+"な同期型要求/応答 RPC スタイルの通信ではなく、エンティティの一方通行の 通信を"
+"ベースにしています。エンティティ(例えば、トランザクションパーティシパント)"
+"は 要求に応答を返す為に他のエンティティ(例えば、トランザクションコーディネー"
+"タ)上の オペレーションを呼び出します。このことはプログラミングモデルが ピア"
+"対ピアの関係をベースにしていると言う意味になります。そして全てのサービス"
+"(パーティシパント、 コーディネータ、又はクライアント)が要求されてないメッ"
+"セージを受信できるように するアクティブコンポーネントを持つ必要があると言う結"
+"果になります。"
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+"現在の XTS の実装では、アクティブコンポーネントは Java servlet 技術を通じて "
+"達成されます。SOAP/XML を通じて通信できる各終点は、servlet として表現 されて"
+"います(そして JNDI 内で発行されています)。開発者にとって幸運なことは "
+"servlet のこの使用が透過的に発生することです。唯一の欠点は(現時点で)クライ"
+"アントが servlet をホストする能力を持つドメイン(アプリケーションサーバー)内"
+"に存在する必要が あることです。XTS の将来のバージョンが設定可能なデプロイメン"
+"トオプションを提供して servlet を強制しないで必要であれば servlet を許可する"
+"ようにすることが意図されています。"
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr "SOAP"
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+"SOAPは、Web サービスの舞台で XML ベース通信用の実質的メッセージ形式として 出"
+"現しました。ユーザーがメッセージの内容を定義して、受信者がそのメッセージを プ"
+"ロセスする方法についてのヒントを提供できるようにする軽量のプロトコルです。"
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+"SOAP メッセージは2つの主要カテゴリに分けることができます。リモート プロシー"
+"ジャコール(RPC) と ドキュメントエクスチェンジ(DE) です。この 2つのカテゴリの"
+"主たる相違は SOAP 仕様が RPC 用にエンコーディングルールと 慣習を定義すること"
+"です。ドキュメントエクスチェンジモデルにより、随意の XML ドキュメントの交換が"
+"できるようになります。B2B ドキュメント交換の 基幹要素です。XTS は大まかに組み"
+"合わされたドキュメント交換スタイルをベースに していますが、ドキュメント交換、"
+"あるいは RPC を使用する Web サービス広範に 渡ってトランザクションをサポートで"
+"きます。"
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr "Web サービス記述言語 (WSDL)"
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""
+"WSDL は、 Web サービスインターフェイスを定義するのに 使用される XML ベースの"
+"言語です。Web サービスを消費するアプリケーションは サービスの WSDL ドキュメン"
+"トを構文解析してサービスの場所、サービスが サポートするオペレーション、サービ"
+"スがサポートするプロトコル構築 (SOAP, HTTP, など)、 そして、それらにアクセス"
+"する方法を発見します(それぞれのオペレーションに、WSDL は クライアントが従う"
+"べき形式を表示します)。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Participants.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Participants.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Participants.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,609 @@
+# translation of Participants.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Participants\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-17 18:22+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr "テスト"
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr "これはテストの段落です"
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr "パーティシパント: その概要"
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+"パーティシパントとは、トランザクション管理に属する作業を実行するエンティティであり、 "
+"これはアプリケーションに関与しているビジネスサービスを代表するものです。Web サービス "
+"(例えば、劇場予約システム)には、座席の予約、問い合わせ機能などの為のいくつかの "
+"ビジネス論理が含まれていますが、それは恒久的な方法で情報を維持できるものでサポート "
+"されている必要があります。一般的にはそれはデータベースでしょう。しかしファイルシステム、 "
+"NVRAM、などでもあり得ます。そのサービスは直接バックエンドデータベースと通信するかも "
+"しれませんが、最終的にはその作業の範囲を受け持つトランザクションの制御下にあるため、 "
+"サービスはそれ自身が行う変更をコミットしたり取り戻したりすることは出来ません。 "
+"トランザクションがこのような制御を実践できるようになるには、データベースとなんらかの接触を "
+"持つ必要があります。 XTS では、これがパーティシパントによって実現されます。そして "
+"そのトランザクションと、インフラストラクチャをプロセスしているバックエンドトランザクション "
+"との間で果たすパーティシパントの役目は以下の図に示してあります。"
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr "トランザクション、パーティシパント、そしてバックエンドトランザクション制御"
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+"XTS 内の各パーティシパントは Atomic Transaction か Business Activity の "
+"いずれかのプロトコルに関連しています。以下のセクションでは、これらの "
+"両方のプロトコルとそれらのそれぞれのパーティシパントを考慮していきます。"
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr "アトミックトランザクション"
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+"全ての Atomic Transaction パーティシパントは以下のインターフェイスの内の "
+"1つのインスタンスです。"
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr "Durable2PCParticipant"
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+"このパーティシパントは、<interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> インターフェイスと同様に "
+"以下のシグニチャを使用して、WS-Atomic Transaction Durable2PC プロトコルを "
+"サポートします:"
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+"<emphasis>prepare</emphasis>: パーティシパントはトランザクションの範囲内で "
+"Web サービスが実行する作業をコミット又はロールバックできるようするために要する "
+"いずれかの作業を実行する必要があります。その実装はそれとコーディネータ間の暗黙の "
+"契約を実現するために必要なことを自由に実行できます。パーティシパントはその準備が "
+"できるかどうかを提示するために  <code>com.arjuna.wst.Vote</code> のインスタンスを "
+"返すことが期待されています。値 <code>ReadOnly</code> は状態の更新がない為に "
+"パーティシパントがトランザクションの結果連絡を受ける必要がないことを示し、値 <code>Prepared</code> は "
+"トランザクションの最終結果によってはトランザクションがコミット又はロールバックをする準備があり、 "
+"これを達成するために十分な状態更新を永続化したことを示します。値 <code>Aborted</code> は、 "
+"パーティシパントが中止しており、トランザクションもそうすべきであることを示します。"
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+"<emphasis>commit</emphasis>: パーティシパントはそれが制御する作業を永久化 "
+"しなければなりません。それが行うことはその実装に左右されます。例えば、劇場用チケットの "
+"予約をコミットするなど。パーティシパントはその後、そのコミットが成功したかどうかの "
+"表示を返します。"
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+"<emphasis>rollback</emphasis>: パーティシパントはそれが制御する作業を元に "
+"戻します。パーティシパントはその後、それが成功したかどうかの表示を返します。"
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+"<emphasis>commitOnePhase</emphasis>: ただ1つの TwoPCParticipant が "
+"トランザクションで登録されている場合、コーディネータはそのプロトコルを最適化 "
+"して、単にそのパーティシパントにコミットするように指示します。暗黙の同意が"
+"あるため、準備の段階は必要ありません。"
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+"<emphasis>unknown</emphasis>: リカバリの期間中に、パーティシパントはそれが "
+"登録してあるトランザクションの状態を問い合わせることができます。トランザクションが "
+"使用不可になっている場合(ロールバックした場合)、このオペレーションはコーディネーション "
+"サービスによって呼び出されます。"
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+"<emphasis>error</emphasis>: リカバリの期間中に、パーティシパントはそれが "
+"登録してあるトランザクションの状態を問い合わせることができます。エラーが発生 "
+"(例えば、トランザクションサービスが利用不可)した場合、このオペレーションが "
+"呼び出されます。 "
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr "Volatile2PCParticipant"
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+"このパーティシパントは <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> インターフェイスと同様に、 "
+"以下のシグニチャを使用して WS-Atomic Transaction Volatile2PC プロトコルを "
+"サポートします:"
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+"<emphasis>prepare</emphasis>: パーティシパントはトランザクションの範囲内で "
+"Web サービスが実行する作業をコミット又はロールバックできるようするために要する "
+"いずれかの作業を実行する必要があります。その実装はそれとコーディネータ間の暗黙の "
+"契約を実現するために必要なことを自由に実行できます。パーティシパントはその準備が "
+"できるかどうかを提示するために  <code>com.arjuna.wst.Vote</code> のインスタンスを "
+"返すことが期待されています。値 <code>ReadOnly</code> は状態の更新がない為に "
+"パーティシパントがトランザクションの結果連絡を受ける必要がないことを示し、値 <code>Prepared</code> は "
+"トランザクションの最終結果によってはトランザクションがコミット又はロールバックをする準備があり、 "
+"これを達成するために十分な状態更新を永続化したことを示します。値 <code>Aborted</code> は、 "
+"パーティシパントが中止しており、トランザクションもそうすべきであることを示します。"
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr "ビジネス活動"
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid "All Business Activity participants are instances of the following interfaces."
+msgstr "全てのビジネス活動のパーティシパントは、以下のインターフェイスのインスタンスです。"
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr "BusinessAgreementWithParticipantCompletion"
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+"このパーティシパントは <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> インターフェイスに "
+"準じて以下のシグニチャを使用して WS-T <code>BusinessAgreementWithParticipantCompletion</code> "
+"プロトコルをサポートします。"
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+"<emphasis>close</emphasis>: トランザクションは正常に完了しました。パーティシパントは "
+"以前に完了準備が出来ていることをコーディネータに伝えています。"
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+"<emphasis>cancel</emphasis>: トランザクションはキャンセルされました。 "
+"そして、パーティシパントはその作業を元に戻す必要があります。パーティシパントは "
+"作業が完了したとコーディネータに通達できません。"
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+"<emphasis>compensate</emphasis>: トランザクションはキャンセルされました。 "
+"パーティシパントは以前にコーディネータに対してその作業が終了したことと "
+"必要であれば後でそれを補正出来ることを告げています。そこでパーティシパントは "
+"今そうするように要求されています。"
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr "<emphasis>status</emphasis>: パーティシパントのステータスを返します"
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+"<emphasis>unknown</emphasis>: パーティシパントがそれが登録してある "
+"トランザクションの状態を問い合わせして、そのトランザクションがもう利用 "
+"できない(ロールバックされている)場合、このオペレーションがコーディネーション"
+"サービスによって呼び出されます。"
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+"<emphasis>error</emphasis>: パーティシパントがそれが登録してある "
+"トランザクションの状態を問い合わせして、エラーが発生した(例えば、 "
+"トランザクションサービスが利用不可になった)場合、このオペレーションが "
+"呼び出されます。"
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr "BusinessAgreementWithCoordinatorCompletion"
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+"<interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> と同様に "
+"パーティシパントは 以下のシグニチャを使用して WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> プロトコルを "
+"サポートします:"
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+"<emphasis>cancel</emphasis>: トランザクションはキャンセルされました。そして "
+"パーティシパントは全ての作業を元に戻す必要があります。"
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+"<emphasis>complete</emphasis>: コーディネータはパーティシパントに対して "
+"このビジネス活動の有効範囲内で実行する必要のある全ての作業が受理されたことを "
+"伝えています。"
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr "BAParticipantManager"
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+"Business Activity プロトコルが正しく機能するためには、パーティシパントは "
+"活動を停止した(退去した)こと、又は完了する準備があることそして(必要なら) "
+"補正する(完了する)ことを自主的にコーディネータに信号送信する必要があります。 "
+"パーティシパントとコーディネータとの間の全ての通信が、トランザクションの終結時に "
+"コーディネータによって主導される Atomic Transaction プロトコルとは異なり、この "
+"通信パターンでは、ビジネス活動の期間中にはいつでもパーティシパントがコーディネータに "
+"話しかけることが出来るように要求されています。"
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+"このようにして、パーティシパントが1つのビジネス活動に登録してあるかにより、 "
+"それはコーディネータのハンドルを受理します。このハンドルは "
+"<interfacename>BAParticipantManager</interfacename> インターフェイスの "
+"インスタンスで、以下のメソッドを使用して <code>com.arjuna.wst.BAParticipantManager</code> に "
+"配置されています:"
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+"<emphasis>exit</emphasis>: パーティシパントはこのビジネス活動から "
+"退去しました。パーティシパントはこれを使用して活動を退去したことを "
+"コーディネータに通達します。ビジネス活動が終了する時(及び方法)に "
+"関しては通達されません。"
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+"<emphasis>completed</emphasis>: パーティシパントは作業を完了しましたが、 "
+"そのビジネス活動を継続する意志を持ちます。そこでパーティシパントは最終的に "
+"活動を終結する時(及びその方法)を告げられます。パーティシパントは後で、 "
+"それが終了した完了の補正を依頼されるかもしれません。"
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+"<emphasis>fault</emphasis>: パーティシパントは通常の活動中に "
+"エラーに遭遇してそれを補正しました。これがビジネス活動を義務的な "
+"キャンセルオンリーモードに配置します。"
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr "パーティシパントの作成とデプロイメント"
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+"以前に示してあるように、パーティシパントはサービスのトランザクション側面を "
+"駆動する配管構成を提供します。このセクションはパーティシパントのプログラミングと "
+"その使用法の仕様について説明しています。"
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr "パーティシパントの実装"
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+"パーティシパントの実装は、理論的には比較的に直線的で単純なタスクですが、 "
+"パーティシパントが管理することになるトランザクションのインフラストラクチャの複雑さに "
+"よってはパーティシパントの実際のサイズと複雑さは変化します。パーティシパントインターフェイス群は "
+"<code>com.arjuna.wst</code> の下に配置されています。この実装はそれらのインターフェイスの1つを "
+"実装しなければなりません。"
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr "パーティシパントのデプロイ実行"
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+"トランザクションマネージャからリモートに配置されるようにパーティシパントを "
+"許可するために、XTS には、透過的なメッセージ巡回機能が含まれています。 "
+"パーティシパントクラスは直接 web サービスのように表面化していません。しかし、 "
+"トランザクションマネージャからメッセージを受信して、関連のあるパーティシパント "
+"インスタンス上の適切なメソッド呼び出しにそれらをマップする web サービスに登録されて "
+"います。トランザクショナル web サービスは一般的に各新規のトランザクション用に "
+"好ましいタイプのパーティシパントを採用します。特有の識別子がその採用時に用意されて "
+"トランザクションプロトコルメッセージを適切なパーティシパントインスタンスにマップする "
+"のに使用されなければなりません。パーティシパントメソッドの呼び出しは特定のトランザクション "
+"コンテキストでは発生しないことに注意して下さい。そのため、使用中のパーティシパント実装が "
+"トランザクションコンテキストの知識を 必要とする場合(例えば、永続化ストア内の状態情報を見るためなど)、 "
+"それを一般的にコンストラクタ関数への引数としてパーティシパントインスタンスに "
+"提供しなければなりません。サンプルのパーティシパント実装とその使用法は XTS に収納されている "
+"デモンストレーションアプリケーションで見ることが出来ます。"
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+"パーティシパントを作成して採用するいずれかのアプリケーションコードは、 "
+"トランザクションマネージャからの来信メッセージを受け取り、プロセスするために "
+"必要な XTS のパーツと共にデプロイされなければなりません。このことは一般的に "
+"適切な XTS .jar、.wsr  と .war のファイルを使用アプリケーションに含んでいることを "
+"意味します。使用アプリケーションをトランザクションマネージャインストールのない "
+"サーバーでデプロイする場合は、XTS 設定ファイルもデプロイする必要があります。"
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""
+"XTS 製品の初期のアクセスリリースでは、トランザクションマネージャとパーティシパント "
+"管理機能は別々のコンポーネントとして提供されていました。パーティシパントインフラストラクチャの "
+"設定とデプロイメントはその為、上記のトランザクションマネージャセクション内にあるものと同様です。 "
+"XTS コンポーネントのより柔軟なデプロイメントが最終リリースで利用可能になります。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-05 08:40+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序文"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,29 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-05 08:40+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Stand-alone_Coordinator.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Stand-alone_Coordinator.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Stand-alone_Coordinator.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,39 @@
+# translation of Stand-alone_Coordinator.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Stand-alone_Coordinator\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-05 08:44+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr "スタンドアローンコーディネータ"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""
+"スタンドアローンの Web サービストランザクションコーディネータの設定には、 シ"
+"ステム管理ガイド内の関連した章をご覧下さい。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/The_XTS_API.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/The_XTS_API.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/The_XTS_API.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,745 @@
+# translation of The_XTS_API.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: The_XTS_API\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-17 19:09+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr "XTS API"
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+"この章では XTS API の使用法を案内しています。これはアプリケーションが トラン"
+"ザクショナル Web サービスを消費するクライアントサイドと、トランザクションが "
+"バックエンドシステムと同調している必要のあるサービス/クライアントサイドの両方"
+"での 使用についての案内です。"
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr "Atomic Transaction プロトコルのための API"
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+"以下のクラスとインターフェイスは <package>com.arjuna.wst or com.arjuna.mw."
+"wst</package> パッケージとサブパッケージ内に あります。"
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr "投票"
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+"2段階コミットプロトコルの間、パーティシパントはそれが制御する作業を確認でき"
+"る 準備があるかどうかについて投票するように依頼されます。以下のような "
+"<code>com.arjuna.wst.Vote</code> の サブタイプを返さなければなりません:"
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+"<emphasis>Prepared</emphasis>: パーティシパントはそれがコーディネータに 依頼"
+"されれば準備ができていることを示します。この段階ではパーティシパントはまだ 最"
+"終的結果を知らないため、コミットしていません。"
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+"<emphasis>Aborted</emphasis>: パーティシパントは準備できないこと、そして 実際"
+"にロールバックしたことを示します。パーティシパントは2段階目のメッセージを 受"
+"ける期待はできません。"
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+"<emphasis>ReadOnly</emphasis>: パーティシパントはそれが制御する作業が トラン"
+"ザクションの最終結果ついて情報を受ける必要のあるような状態の変化をしていない "
+"ことを示します。基本的にパーティシパントはトランザクションから退去していま"
+"す。"
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+"このようにして、2PC パーティシパントの prepare メソッドの可能な実装は以下に "
+"似たものになります:"
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr "トランザクションコンテキスト"
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+"トランザクションは標準的に特有の識別子と、トランザクションを管理する コーディ"
+"ネータへの参照(例えば、URL)とで表現されます。XTS はトランザクションが ネス"
+"ト化できるようにしてトランザクション階層(ツリー)が形成できるようにします。 "
+"そのため、トランザクションコンテキストは、ルートペアレントである最上部のトラ"
+"ンザクションを 持つトランザクション群であることができます。"
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr "TxContext"
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+"<code>com.arjuna.mw.wst.TxContext</code> はトランザクションコンテキストの 不"
+"明瞭な表現です。"
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+"<emphasis>valid</emphasis>: これはコンテンツが有効であるかないかを示します。"
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+"<emphasis>equals</emphasis>: 2つのインスタンスを比較するのに使用されます。"
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr "UserTransaction"
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+"<classname>com.arjuna.wst.UserTransaction</classname> はほとんどのユーザー "
+"(例えば、クライアントとサービス)が見ることになるクラスです。これは XTS 実装"
+"の 背後にあるプロトコル特有の側面からそれらのユーザー達を隔離します。重要なこ"
+"とは、 UserTransaction が特定のトランザクションを表現するのではなく、むしろ暗"
+"黙了解の スレッド単位トランザクションコンテキストにアクセスを提供する役目を持"
+"ちます。 このことは、JTA 仕様の UserTransaction に似ています。そのため、全て"
+"の UserTransaction メソッドは必然的に制御の現在のスレッド上で行動します。"
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+"begin メソッドを使用して新規のトランザクションが開始されて呼び出すスレッドと "
+"関連づけされます。このスレッドに関連づけのあるトランザクションが既に存在する"
+"場合は、 <code>WrongStateException</code> 例外が送出されます。正しく開始され"
+"ると、 このオペレーションは新規に作成されたトランザクションを現在のスレッドに"
+"関連づけします"
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+"トランザクションは、commit メソッドによってコミットされます。これは "
+"Volatile2PC プロトコルと Durable2PC プロトコルを実行してから戻ります。 呼び出"
+"すスレッドに関連のあるトランザクションが存在しない場合は、 "
+"<code>UnknownTransactionException</code> が送出されます。トランザクションが "
+"最終的にロールバックすると、<code>TransactionRolledBackException</code> が 送"
+"出されます。完了すると、このオペレーションはそのトランザクションを現在のス"
+"レッドから 分離して、そのスレッドがどのトランザクションにも関連を持たないよう"
+"にします。"
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+"<code>rollback</code> オペレーションはトランザクションを終結して、正しく 終結"
+"した場合は通常に戻ります。正しく終結しない場合は適切な例外を送出します。 呼び"
+"出すスレッドに関連したトランザクションが存在しない場合は、 "
+"<code>UnknownTransactionException</code> が送出されます。"
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr "UserTransactionFactory"
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+"UserTransactions は <code>UserTransactionFactory</code> から取得されます。"
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr "TransactionManager"
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+"<interfacename>TransactionManager</interfacename> インターフェイスは背後にあ"
+"る トランザクションサービス実装との交流をするサービス/コンテナ/パーティシパン"
+"ト(サービス側のユーザー)の 標準的な方法を表現します。"
+"<interfacename>UserTransaction</interfacename> と同様に "
+"<interfacename>TransactionManager</interfacename> は特定のトランザクションを"
+"表現するものでは なく、むしろ暗黙了解のスレッド単位トランザクションコンテキス"
+"トへのアクセスを提供する役目を持ちます。"
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+"制御のスレッドは、それが特定のトランザクションに関連のない作業を実施できるよ"
+"うに トランザクションでない期間を要求することができます。これを達成するため"
+"に、 スレッドをいずれのトランザクションからも分離する必要があります。これは "
+"suspend メソッドが達成します。そしてトランザクション上のハンドルである "
+"<code>TxContext</code> インスタンスを返します。スレッドはそれから いずれのト"
+"ランザクションとも関連を持たないようになります。"
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+"<methodname>resume</methodname> メソッドはスレッドを <code>TxContext</code> "
+"経由で トランザクションに(再)関連づけするために使用することができます。新規"
+"関連づけの前にスレッドは 現在関連づけのある可能性を持つどのトランザクションと"
+"も分離されます。<code>TxContext</code> が null であれば スレッドはどのトラン"
+"ザクションにも関連づけがないことになります。<code>TxContext</code> で参照する"
+"トランザクションが 呼び出すスレッドの有効範囲内で無効である場合に "
+"<code>UnknownTransactionException</code> 例外が送出されます。"
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+"<methodname>currentTransaction</methodname> メソッドは現在のトランザクション"
+"の 為の <code>TxContext</code> を返します。それが存在しない場合は null を返し"
+"ます。 suspend とは異なり、このメソッドは現在のスレッドをトランザクションから"
+"分離しません。 これは同じトランザクションの有効範囲内で実行する複数のスレッド"
+"を有効にするのに使用 できます。"
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+"パーティシパントをトランザクションに登録と離籍するためには コンテナ、又はパー"
+"ティシパントは以下を使用する必要があります:"
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: Volatile2PC プロトコルに参入"
+"するように 現在のトランザクションを持つ指定されたパーティシパントを募集しま"
+"す。パーティシパント用の特有な 識別子も必要になります。呼び出すスレッドに関連"
+"づけのあるトランザクションが存在しない場合は、 "
+"<code>UnknownTransactionException</code> 例外が送出されます。コーディネータが"
+"すでに 同じ識別子を持つパーティシパントを採用している場合は、"
+"<code>AlreadyRegisteredException</code> 例外が送出されます。トランザクション"
+"がパーティシパントの参加できる状態でない場合(例えば、終結している時)、 "
+"<code>WrongStateException</code> 例外が送出されます。"
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>:  2PC プロトコルに参入するよう"
+"に 現在のトランザクションを持つ指定されたパーティシパントを募集します。パー"
+"ティシパント用の特有な 識別子も必要になります。呼び出すスレッドに関連づけのあ"
+"るトランザクションが存在しない場合は、 <code>UnknownTransactionException</"
+"code> 例外が送出されます。コーディネータがすでに 同じ識別子を持つパーティシパ"
+"ントを採用している場合は、<code>AlreadyRegisteredException</code> 例外が送出"
+"されます。トランザクションがパーティシパントの参加できる状態でない場合(例え"
+"ば、終結している時)、 <code>WrongStateException</code> 例外が送出されます。"
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr "TransactionFactory"
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+"TransactionManagers は <code>TransactionFactory</code> から 取得できます。"
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr "ビジネス活動プロトコルのための API"
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr "UserBusinessActivity"
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+"<classname>com.arjuna.wst.UserBusinessActivity</classname> はほとんどのユー"
+"ザー (例えば、クライアントとサービス)が見ることになるクラスです。これはそれ"
+"らのユーザーを XTS 実装の背後にあるプロトコル特有の側面から隔離します。重要な"
+"ことは、<code>UserBusinessActivity</code> が 特定のビジネス活動を表現するので"
+"はなく、暗黙了解のスレッド単位活動へのアクセスの提供する役目を持つことです。 "
+"そのため、<code>UserBusinessActivity</code> メソッドの全ては必然的に制御の現"
+"在のスレッド上で 行動します。"
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+"begin メソッドを使用することにより新規のビジネス活動が開始され、呼び出すス"
+"レッドとの 関連づけがなされます。このスレッドに既に関連を持つ活動がある場合"
+"は、<code>WrongStateException</code> 例外が送出されます。正しく開始されると、"
+"このオペレーションは新規に作成された活動を現在のスレッドに 関連づけします。"
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+"ビジネス活動は close メソッドによって完了されます。これが "
+"<code>BusinessAgreementWithParticipantCompletion</code> を 実行してから戻りま"
+"す。呼び出すスレッドに関連づけのある活動が存在しない場合は、"
+"<code>UnknownTransactionException</code> が 送出されます。活動が最終的に取消"
+"になる場合、<code>TransactionRolledBackException</code> が送出されます。 完了"
+"すると、このオペレーションは、ビジネス活動を現在のスレッドから分離して、それ"
+"がどの活動とも 関連を持たないようにします。"
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+"cancel オペレーションは、ビジネス活動を終結して、それが正しく実施された場合"
+"は 元に戻ります。それが正常に実施されない場合は、適切な例外が送出されます。 "
+"呼び出すスレッドと関連づけのある活動が存在しない場合は、"
+"<code>UnknownTransactionException</code> が 送出されます。以前に完了している"
+"パーティシパントはそれらの作業を補正するように通達されます。"
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+"一部のパーティシパントは <code>BusinessAgreementWithCoordinatorCompletion</"
+"code> プロトコルの為に登録されているかも知れません。このことはビジネス活動の"
+"範囲内で実施する必要のある 全ての作業が完了した時にコーディネータか、又はアプ"
+"リケーションがパーティシパント達に 通達することを要求します。アプリケーション"
+"はそこで complete メソッドを使用してこれらの パーティシパント達に通達します。"
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr "UserBusinessActivityFactory"
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+"UserBusinessActivities は <code>UserBusinessActivityFactory</code> から 取得"
+"できます。"
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr "BusinessActivityManager"
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+"<interfacename>BusinessActivityManager</interfacename> インターフェイスは "
+"サービス/コンテナ/パーティシパント(サービス側のユーザー)が背後にあるビジネ"
+"ス活動 サービス実装と対応するための標準的な方法を表現します。"
+"<interfacename>UserBusinessActivity</interfacename> の場合と同様に、"
+"<interfacename>BusinessActivityManager</interfacename> は特定の活動は示さない"
+"で、むしろ 暗黙のスレッド単位の活動へのアクセスを提供する役目を果たします。"
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+"制御のスレッドは、特定の活動に関連していない作業を実行できるように トランザク"
+"ションでない期間を要求することができます。これを達成するには、 スレッドをいず"
+"れのビジネス活動からも分離する必要があります。suspend メソッドが これを達成で"
+"きて、それが活動上のハンドルである <code>TxContext</code> インスタンスを返し"
+"ます。 スレッドはそれからはもうどの活動にも関連づけを持ちません。"
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+"<methodname>resume</methodname> メソッドはスレッドを TxContext 経由で 活動に"
+"(再)関連づけするために使用することができます。新規関連づけの前にスレッドは "
+"現在関連づけのある可能性を持つどの活動とも分離されます。<code>TxContext</"
+"code> が null であれば スレッドはどの活動にも関連づけがないことになります。"
+"TxContext で参照するビジネス活動が 呼び出すスレッドの有効範囲内で無効である場"
+"合に <code>UnknownTransactionException</code> 例外が送出されます。"
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+"<methodname>currentTransaction</methodname> メソッドは現在のビジネス 活動の為"
+"の <code>TxContext</code> を返します。又はそれがない場合、null を 返します。"
+"suspend とは異なり、このメソッドは現在のスレッドを活動から分離しません。 これ"
+"は同じビジネス活動の範囲内で実行する為の複数スレッドを有効にするために使用で"
+"ます。"
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+"ビジネス活動に対してパーティシパントの登録と離籍をするために、 コンテナ、又は"
+"パーティシパントは以下を使用する必要があります:"
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"<code>BusinessAgreementWithParticipantCompletion</code> プロトコルに参入する"
+"ように 現在のビジネス活動を持つ指定されたパーティシパントを募集します。パー"
+"ティシパント用の特有な 識別子も必要になります。呼び出すスレッドに関連づけのあ"
+"るビジネス活動が存在しない場合は、 <code>UnknownTransactionException</code> "
+"例外が送出されます。コーディネータがすでに 同じ識別子を持つパーティシパントを"
+"採用している場合は、<code>AlreadyRegisteredException</code> 例外が送出されま"
+"す。活動がパーティシパントの参加できる状態でない場合(例えば、終結している"
+"時)、 <code>WrongStateException</code> 例外が送出されます。"
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> プロトコルに参入する"
+"ように 現在のビジネス活動を持つ指定されたパーティシパントを募集します。パー"
+"ティシパント用の特有な 識別子も必要になります。呼び出すスレッドに関連づけのあ"
+"るビジネス活動が存在しない場合は、 <code>UnknownTransactionException</code> "
+"例外が送出されます。コーディネータがすでに 同じ識別子を持つパーティシパントを"
+"採用している場合は、<code>AlreadyRegisteredException</code> 例外が送出されま"
+"す。活動がパーティシパントの参加できる状態でない場合(例えば、終結している"
+"時)、 <code>WrongStateException</code> 例外が送出されます。 "
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr "BusinessActivityManagerFactory"
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""
+"BusinessActivityManagers は <code>BusinessActivityManagerFactory</code> から "
+"取得できます。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactional_Web_Services.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactional_Web_Services.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactional_Web_Services.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,139 @@
+# translation of Transactional_Web_Services.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactional_Web_Services\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-05 14:16+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr "トランザクショナル Web サービス"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+"この章では、XTS のサービスサイドの機能を使用した新規の又は既存の Web サービス"
+"の 為のトランザクショナルサポートの提供方法を説明しています。ここでは、追加"
+"の プログラミングを使用しないで新規のサービスをトランザクション的にする方法"
+"と 侵略的でないスタイルで既存のサービスを WS-T トランザクション認識にする方法"
+"を 示しています。"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr "トランザクショナル Web サービス"
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+"Web サービスはビジネスレベルのエンティティです。これは一部のドメイン特有の タ"
+"スクを実践するために必要なアプリケーション論理をカプセル化し、そして その論理"
+"を実行するバックエンドシステムに仕事を委任するように設計されています。 アプリ"
+"ケーションコードの一部であることから、トランザクション性のような機能的でない "
+"要求はその構造に影響することはないはずです。"
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+"この概念をサポートするために、XTS は SOAP スタックレベルで機能するように 設計"
+"されたコンポーネントのセットを提供し、これがそのサービスに如何なる変更も 必要"
+"とせずに Web サービスの役目としてトランザクショナル事項を取扱います。 XTS で"
+"は、2つのコンテキスト処理のコンポーネントが SOAP サーバーに登録 されており、"
+"コンテキストの伝播問題自身を懸念することなくサービスの役目として コンテキスト"
+"管理を取り扱います。以下にその様子を示しています。"
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr "SOAP サーバーを使用して登録されたコンテキストハンドラ"
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+"コンテキストプロセッサが実行するコンテキスト管理の詳細は、Web サービス アプリ"
+"ケーション論理にとっては重要ではなく、他のプロトコル特有のコンテキスト ハンド"
+"ラによって実行される作業には直角交差しています。しかし、Web サービス アプリ"
+"ケーション論理が使用する(データベースなどの)バックエンドシステムは多くの 場"
+"合に、フロントエンドのトランザクションコンテキストに興味を持ち、その有効範囲"
+"で 呼び出されたオペレーションはいずれもバックエンドトランザクションコンテキス"
+"トに マップすることができます。これは一般的にデータベースドライバを、オリジナ"
+"ル ドライバのベニア内にラップすることにより、オリジナルドライバのインターフェ"
+"イスを 実装して、トランザクショナルコンテキストの詳細にアクセスするためにサー"
+"ビスサイドの API にフックするとバックエンドで達成できます。"
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr "バックエンド統合の為の汎用パターン、サービスサイド"
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""
+"ここで欠如している要素はコミットのプロトコルであり、これはバックエンドの作業"
+"が トランザクションの最後に恒久であるかどうかを決定できるようにします。このこ"
+"とは パーティシパントの章でカバーされていて、パーティシパント/バックエンドの"
+"関係がより詳しく検討されいます。"

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactions_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactions_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactions_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,864 @@
+# translation of Transactions_Overview.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Transactions_Overview\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-16 16:05+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr "トランザクションの概要"
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+"トランザクションは分散型のシステム内でパーティ間の交流を調整する為の "
+"有力なパラダイムとして出現してきました。そして特に共有データへの "
+"並行アクセスを要求するアプリケーションの管理をします。JBossTS Web "
+"サービス API の多くが、熟知すると開発者の生産性を向上し急速な学習 "
+"ニーズを軽減する現代的なトランザクション API をベースにしています。 "
+"以下のセクションではトランザクショナル Web サービスの構築の為の XTS "
+"使用を開始する前に知っておくべき基本的な情報を提供していますが、これは "
+"すべてのトランザクショナル技術への決定的参照として判断すべきものでは "
+"ありません。"
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+"古典的なトランザクションは完全に成功するか、失敗するか、そして部分的に "
+"完了したものは元に戻されると言う作業の単位です。トランザクションがコミット "
+"されると、関連した要求によりなされた全ての変更は、通常その結果をデータベースに "
+"保存することにより恒久化されます。トランザクションが失敗してロールバックされた "
+"場合は、関連した作業によりなされた変更はすべて元に戻されます。分散型システム内の "
+"トランザクションは標準的に、トランザクションの一部であるパーティシパントの全てを "
+"調整する役目を持つトランザクションマネージャの使用が必要となります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+"XTS を使用したトランザクショナル Web サービスの使用と定義に関与している主な "
+"コンポーネントは 図1に示してあります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+"トランザクションサービス: トランザクションサービスは背後にあるトランザクションプロトコルの "
+"モデルを取り込んで、そのモデルに応じてトランザクションと提携されているパーティを調整します。"
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+"トランザクション API: トランザクション区分とパーティシパントの登録用のインターフェイスを "
+"提供します。"
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+"パーティシパント: 関連づけのあるビジネス論理の代表としてトランザクション "
+"サービスと協調するエンティティです。"
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+"コンテキスト: トランザクションの必要な詳細を取り込んで、パーティシパントがその有効範囲内で "
+"参加できるようにします。"
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr "Web サービスと XTS"
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr "コーディネータ"
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+"全てのトランザクションに関係しているのがコーディネータです。これは "
+"トランザクションの結果を監督する責務を持ちます。コーディネータは "
+"別のサービスとして実装されるか、あるいはパフォーマンス向上の為に "
+"ユーザーとの並列配置として使用できます。各コーディネータは結果的に "
+"コーディネータ達の生産向上となるトランザクションマネージャサービスに "
+"よって作成されます。"
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+"コーディネータは参入したパーティシパントと通信して目標とする "
+"終結要求、例えば、該当するトランザクションの有効範囲内でなされた作業を "
+"受理する(例:確認)か又は拒否する(例:取消し)かどうかを通達します。 "
+"例として挙げると、ユーザーの為のフライトの予約(暫定予約済み)を購入するか "
+"又はそれを取り消すかと言うことが考えられます。アプリケーション/クライアントは "
+"色々な方法でトランザクションを終結したい(例えば、確認か取消し)と意図するでしょう。 "
+"しかし、コーディネータがクライアントの意図する方法で終結を試みても、それは最終的には "
+"実際の最終結果を決定するのはコーディネータとパーティシパントとの間の協議なのです。"
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+"トランザクションマネージャは標準的には、多くのトランザクションの為に "
+"コーディネータ達を管理する責務を持ちます。トランザクションのイニシエータ "
+"(例えば、クライアント)はトランザクションマネージャに通信して新規の "
+"トランザクションを開始し、コーディネータをそのトランザクションに関連づけする "
+"ことを依頼します。それが作成されると、そのコンテキストが Web サービスに伝播 "
+"されて Web サービスがトランザクションと作業の関連づけを持つようになります。"
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr "トランザクションコンテキスト"
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+"トランザクションが数多くのサービスに広がるために、特定の情報がそれらの "
+"サービス間で共有されてトランザクションに関する情報が伝播する必要が "
+"あります。この情報はコンテキストとして知られています。XTS の使用では、 "
+"コンテキストは自動的にアプリケーションのトランザクション認識部分により "
+"伝播されてプロセスされます。XTS はコンテキストの伝播に関与したほとんどの "
+"作業を排除しますが、コンテキスト内にどのような情報が取り込まれているのかを "
+"理解することは役に立ちます:"
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr "個別のトランザクション用にグローバルな特殊性を保証するトランザクション識別子;"
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+"パーティシパントが参加できるようにするトランザクションコーディネータの位置、又は "
+"最終点アドレス。"
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr "Web サービスとコンテキストフロー"
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+"図2に示してあるように、アプリケーションメッセージが送信されると XTS "
+"Client API  は自動的にコンテキストを作成してそれをメッセージに埋め込みます。 "
+"同様に、トランザクション認識のサービスはいずれも XTS サービスサイドの "
+"インフラストラクチャを使用してそのコンテキストを取り出すことができ、 "
+"トランザクションが Web の他の場所で開始されていても その特定の "
+"トランザクションのコンテキスト内で作業をするためにそれを使用します。 "
+"このアプローチの価値は、クライアントアプリケーションとサービス内に含まれる "
+"ビジネス論理はトランザクションプロセッシングコードにより懲らしめられる "
+"ことがないことです。"
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr "ACID トランザクション"
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+"伝統的に、トランザクションプロセッシングは ACID プロパティをサポートします。 "
+"ACID は Atomic, Consistent, Isolated, Durable の頭文字です。伝統的に作業の "
+"1単位は、 ACID プロパティが維持できている場合のみにトランザクショナルと判定 "
+"されます:"
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr "Atomicity(原子性):トランザクションは実行を完了するか、又は全くしません。"
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+"Consistency(一貫性):トランザクションの効果は、背後にあるデータ構造の内部的一貫性を "
+"保存します。 "
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+"Isolated(隔離性): トランザクションは、まるで他のトランザクションが実行していなくて、 "
+"単独で実行しているかのように実行し、そして他のトランザクションには見えません。"
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr "Durable(恒久性): トランザクションの結果は障害時でも消失しません。 "
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr "2段階コミット"
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+"古典的な2段階コミットアプローチは、JBossTS(及び他の Web サービストランザクション)の "
+"岩床です。2段階コミットはトランザクションに関与しているパーティの同調を提供します。 "
+"一般的に2段階コミットトランザクションの流れは以下のようになります:"
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr "トランザクションが開始されます。そして一部の作業が実行されます。"
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr "作業が終了すると、2段階コミットが始まります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+"トランザクションのコーディネータ(トランザクションマネージャ)がトランザクションに "
+"参入している各リソースに対してコミットする準備があるかどうかを尋ねます。"
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+"全てのリソースが肯定的に返事をした場合、コーディネータが "
+"実行される全ての作業は恒久化すべきこと(通常、データベースへの保存)を "
+"告げます。"
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+"返事が肯定的でない場合は、実行された全ての作業はロールバック(元に戻す)して "
+"背後にあるデータベース構造が元の状態になるようにします。"
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr "2段階コミットプロトコル"
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+"2段階コミットのトランザクションの間、コーディネータとリソースは揮発性でない "
+"データストア内の活動の記録をとり、障害の際に復元できるようにします。"
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr "同期化プロトコル"
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+"伝統的なトランザクションプロセッシングシステムは2段階コミットプロトコルの他にも、 "
+"追加のプロトコルを採用します。多くの場合これは同期化プロトコルと "
+"呼ばれます。オリジナルの ACID プロパティを回想して頂くと、失敗にも係わらず "
+"状態変化情報が必要となるケースでは Durability(恒久性)が重要になることを思い "
+"出されるはずです。このことは、アプリケーションがある種の永続化ストア(データベース)と "
+"通信して、これが重要な運営負担になると言う意味です(ディスクアクセスはメインコンピュータメモリへの "
+"アクセスよりも随分遅くなります)。 "
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+"この問題への明確なソリューションの1つはその状態をメインメモリーにキャッシュして "
+"トランザクションの期間中にはそのキャッシュのみでオペレートすることです。残念ながら、 "
+"そうするとトランザクションが終結する前にその状態を永続化ストアに流すことが出来る "
+"ような手段が必要になります。さもなければ ACID プロパティの全体を失うリスクを負います。 "
+"これが同期化パーティシパントを使用した同期化プロトコルが実行する仕事になります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+"同期化はトランザクションがコミットしそうだと言う通達を受けます。そうすると、 "
+"例えば、アプリケーションのパフォーマンスを向上するために使用されたキャッシュ化した "
+"状態をトランザクションのコミット前に恒久化設備にフラッシュできます。それはその後、 "
+"何時トランザクションが終了したか、及びどの状態で終了したかの通達を受けます。"
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr "同期化は基本的に2段階コミットプロトコルを4段階プロトコルに転換します:"
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+"トランザクションが2段階コミットを開始する前に、全ての登録済み "
+"同期化は通達を受けます。この時点での障害はいずれもトランザクションが "
+"ロールバックする原因になります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr "コーディネータは通常の2段階コミットプロトコルを実践します。"
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+"トランザクションが終結すると、全ての登録済み同期化は通達を受けます。 "
+"しかし、この段階での障害はどれも無視されるため、これは単に社交的な "
+"呼び出しです。トランザクションはもう終結しているため、何も影響は "
+"ありません。"
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+"2段階コミットプロトコルとは異なり、同期化プロトコルは同じような "
+"障害への必要事項を持ちません。例えば、同期化パーティシパントは "
+"障害時にそれらが復元できることを確認する必要はありません。これは "
+"2段階コミットプロトコルが完了する前の障害はどれもトランザクションの "
+"ロールバックになり、そして完了後の障害は同期化パーティシパントが "
+"管理しているデータには影響がないからです。"
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr "プロトコルへの最適化"
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+"標準の2段階コミットプロトコルには、パフォーマンスと障害復元にインパクトを "
+"与える可能性の為に、知っておくべきいくつかの変種があります。このプロトコルの "
+"最も一般的な変種についてここで簡単に説明しておきます:"
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+"Presumed abort(推定放棄): トランザクションがロールバックしそうな場合、 "
+"トランザクションは単にこの情報をローカルで記録して、採用しているパーティシパント達に "
+"それを通達します。パーティシパントへの通達が達成されなくてもトランザクションの結果には "
+"影響がありません。トランザクションは社交的にパーティシパントに連絡しているだけです。 "
+"全てのパーティシパントが連絡を受けると、トランザクションについての情報は破棄できます。 "
+"その後にトランザクションの状態についての要求が発生すると、情報は存在せずに要求側は "
+"トランザクションが放棄(ロールバック)されたと推定します。この最適化の利便性として "
+"パーティシパントに関する情報はトランザクションがコミット(準備段階の最後にプロセス)を "
+"決定するまで永続化する必要がないと言う点があります。この時点までの障害は全てトランザクションの放棄と "
+"見なされるからです。"
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+"One-phase(1段階): トランザクションに関与しているのが単独のパーティシパントだけの "
+"場合、コーディネータは準備段階全体に渡って通過する必要はありません。そのため、 "
+"該当パーティシパントは単にコミットするように指示されて、トランザクションの結果は "
+"そのパーティシパントだけの為であるためコーディネータはこの決定に関して情報を記録 "
+"する必要はありません。"
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+"Read-only(読み取りのみ): パーティシパントは準備の要求を受けると、"
+"コーディネータに対してパーティシパントが制御している情報やデータがトランザクションの "
+"期間中に修正されていないことを示すことができます。そのようなパーティシパントは "
+"その動向がトランザクションに影響しない為、トランザクションの結果の通達を受ける "
+"必要はありません。そのため、read-only のパーティシパントはコミットプロトコルの "
+"第2段階から無視できます。"
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr "原子性でない(Non-atomic)トランザクションと発見的方法(heuristic)の結果"
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+"原子性を保証する為に、2段階コミットプロトコルはブロッキングをしています。 "
+"これが意味することは、障害復元のメカニズムが存在する場合でも障害の結果として "
+"パーティシパントは無限にブロックされ続ける可能性があると言うことです。一部の "
+"アプリケーションとパーティシパントはこのブロッキングに対処できません。"
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+"このブロッキングの性質を打破するために、準備段階を通過したパーティシパントは "
+"それらがコミットするかロールバックするかについて自主的な決定能力が与えられます。 "
+"そのようなパーティシパントは、オリジナルトランザクションを最終的に完了する為の "
+"連絡を受ける場合に備えてこの決定を記録しなければなりません。コーディネータが "
+"パーティシパントに対してトランザクションの最終結果を通達して、それがパーティシパント自身の "
+"決定と同じである場合、問題はありません。それが異なる場合、原子性でない結果が発生した "
+"ことが明確です。これが発見的方法( heuristic )の結果となります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+"この発見的方法の結果がアプリケーションに報告される手段とその解決は通常、 "
+"原子性解決の試行はトランザクションに関与しているパーティシパントの性質に "
+"関するセマンティクな情報を必要とするために、複雑で手動主体のシステム管理ツールの "
+"領域となります。"
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+"正確にパーティシパントが発見的方法で決定をする時期は明らかに実装に "
+"依存しています。同様に、パーティシパントがする決定(コミットかロールバックか)も "
+"実装に依存して、多分、それ自身があるアプリケーション/環境にも依存します。 "
+"可能性のある発見的方法は以下のようになります:"
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+"発見的方法のロールバック: 一部の、又は全てのパーティシパントが一方的にトランザクションを "
+"ロールバックしたため、commit オペレーションは失敗します。"
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+"発見的方法のコミット: 全てのパーティシパントが一方的にコミットをしたため、 "
+"ロールバックの試みは失敗となります。これは、例えば、コーディネータが "
+"トランザクションを正しく準備できてもそれをロールバックする決心しても "
+"(例えば、そのログを更新できなかった状態など)、その間にパーティシパントが "
+"コミットを決定した場合、発生します。"
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+"発見的方法のミックス: 他のパーティシパントがロールバックしている状態で、 "
+"一部の更新(パーティシパント)がコミットされる状態。"
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+"発見的方法のハザード: 一部の更新の処置は不明です。知られているものについては "
+"それらは全てコミットされているか、又は全てロールバックされています。"
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+"発見的方法の決定は注意して使用する必要があり、その決定がトランザクション "
+"サービスで決定したものと異なる状態では、システムの整合性の喪失に "
+"継る可能性があるため、例外的な状況のみの使用となります。"
+"発見的方法の原因にならないサービス/パーティシパントを使用するか、 "
+"解決プロセスの援助を提供するトランザクションサービスを使用することにより "
+"発見的方法の解決を実行しなければならない状況は回避すべきです。"
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr "新規のトランザクションプロトコル"
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+"多くのコンポーネント技術が、2段階コミットセマンティクス(CORBA/OTS、 "
+"JTS/JTA、MTS/MSDTC)をベースにした ACID トランザクションの調整の為の "
+"メカニズムを提供しています。ACID トランザクションは、以下のような理由で "
+"全ての Web サービスには適切ではありません:"
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+"古典的な ACID トランザクションは、アプリケーションを開発しデプロイする組織は、 "
+"それ自身のインフラストラクチャ、特にイントラネットを使用してそれを実行するとのアイデアに "
+"基づいています。所有権とは、信頼できる予測可能な方法でオペレートできるトランザクションを "
+"意味します。ACID 性を保証するには、長期生存の可能性を持つロックが、2段階コミットの間に "
+"背後にあるデータ構造上に保存できるようにします。リソースは長い期間でも使用可能でトランザクションが "
+"完了した時に開放できます。Web サービスの舞台では、これらの仮定はもう有効ではありません。 "
+"明確な理由の1つは、Web サービスを通じて表面化したデータの所有者は、ロックをすることが"
+"サービス否定攻撃を招待することになり、長期間そのデータをロックすることを拒否するからです。"
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+"全てのアプリケーションインフラストラクチャは一般的に単独パーティによって所有されています。 "
+"そして古典的な ACID トランザクションを使用しているシステムは、通常トランザクション内の "
+"パーティシパントがトランザクションマネージャの意志に従い、稀に一方的な決定をしてそれが "
+"トランザクション内の他のパーティシパントを妨げると推測しています。それとは逆に、 "
+"トランザクション内に参加している Web サービスは実質的に何時でもトランザクションからの "
+"辞任を決定することが可能であり、サービスの消費者は一般的にこれを防ぐためのサービス品質保証の "
+"方法はあまり持ちません。"
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr "ゆるく結合しているシステム内のトランザクション問題への対処"
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+"ACID プロパティを柔軟にするトランザクションモデルの拡張は長い間提案されて "
+"いましたが、Web サービスアーキテクチャ WS-T の為にこのような概念を実装することは "
+"新規のトランザクションプロトコルを提供することになります。XTS は Web サービスのような "
+"ゆるく結合されたアーキテクチャ内に継承される4つの底辺要求事項を受け付けるように設計 "
+"されています。"
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+"その効果が隔離化や恒久化されない可能性のあるオペレーションを巻き込む能力と共に、 "
+"トランザクションへの複数の正しい結果を処理する能力;"
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+"その関係が中央の設計権限の指示ではなく、契約により監督されている自主的パーティの "
+"調整;"
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+"パーティがその寿命の間に作動停止を被ることと、調整作業がそのような "
+"作動停止で生存しなければならないと予想されいるような断続的なサービス;"
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""
+"複数の通信プロトコルでの XML を使用する混合オペレーション。XTS は最初のリリースでは "
+"継承された HTTP を使用し、将来のリリースでは他の SOAP フレンドリーなトランスポートを "
+"使用するように選択します。"
+

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/ja-JP/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1347 @@
+# translation of WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po to Japanese
+# Language ja-JP translations for Transactions_Web_Services_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Kiyoto Hashida <khashida at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: WS-C_WS-Atomic_Transaction_and_WS-"
+"Business_Activity_Overview\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-17 17:05+1000\n"
+"Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
+"Language-Team: Japanese <jp at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr "WS-C、WS-Atomic Transaction、及び WS-Business Activity の概要"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+"このセクションでは、WS-C、WS-Atomic Transaction、及び WS-Business Activity "
+"に 関連した基本的な概念を提供します。これらの概念の全ては WS-C、WS-Atomic "
+"Transaction、 WS-Business Activity 仕様の中で定義されています。 WS-C、WS-"
+"Atomic Transaction、 WS-Business Activity の原則はこのガイドを通じて広範囲に"
+"説明してあります。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+"WS-C、 WS-Atomic Transaction、 WS-Business Activity 仕様に熟知されている場合"
+"は、 マニュアルのこの部分は軽く読み流しても良いでしょう。 "
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr "WS-Coordination"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+"一般的な表現では、調整(coordination)とは、エンティティの1つ(コーディネー"
+"タ)が ドメイン特有の理由で多くのパーティシパントに情報を散布する行為のことで"
+"す。特有の理由とは 分散型トランザクションプロトコルなどの決定について合意に到"
+"達する為とか、あるいは 信頼できるマルチキャスト環境内で発生するような特定メッ"
+"セージを全てのパーティシパントが 取得することを保証する為などです。パーティが"
+"調整を受けている時には、調整コンテキストとして 知られる情報は同一の調整作業又"
+"は活動の論理的一部であるオペレーションを一緒に 組織する為に伝搬されます。この"
+"コンテキスト情報は通常のアプリケーションメッセージと共に 移動するかも知れない"
+"し、又はメッセージ交換内の明示的な部分であって、そして実行されている 調整の種"
+"類に特定のものかも知れません。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+"WS-Coordination を支持している基本的な思考は、Web サービス環境内の調整インフ"
+"ラストラクチャの為に 汎用のニーズがあると言うことです。WS-Coordination 仕様"
+"は、図4に示してあるように、異なる 調整プロトコルがクライアント間、サービス"
+"間、パーティシパント間で作業を調整する為にプラグインされる ようにするフレーム"
+"ワークを定義します。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+"このレベルでは、活動は最小限に指定してあり簡単に作成されて、 実行されて、それ"
+"から完了します。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr "WS-C アーキテクチャ"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+"使用される調整プロトコルが何であっても、そしてどのドメインで それが使用されて"
+"いても、同じ汎用の要求がそこに存在します:"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+"特定のアプリケーションインスタンス用の特定の調整プロトコル用の新規の コーディ"
+"ネータの具体化(又はアクティベーション);"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+"アプリケーションの寿命の間に(その一部分で)コーディネータのプロトコルメッ"
+"セージを 受信するようにコーディネータへのパーティシパントの登録;"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr "アプリケーションを形成する Web サービス群の間でコンテキスト情報の伝播;"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr "完了まで調整プロトコルをドライブするためのエンティティ。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+"これらのポイントの最初の3つは WS-Coordination に直接係わっています。 4つめ"
+"は、サードパーティエンティティ、すなわち通常アプリケーションを全体として 制御"
+"するクライアントアプリケーションの責務です。これらの 4つの WS-Coordination "
+"の 役目とそれらの交流関係は図5で示してあります。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr "WS-C インフラストラクチャ"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr "アクティベーション"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+"WS-Coordination フレームワークは、特定のプロトコルとそれらに関連したコンテキ"
+"ストの ためのコーディネータの作成をサポートするアクティベーションサービスを表"
+"面化します。 アクティベーションサービスの呼出プロセスは非同期的に実施されるた"
+"め、その仕様は アクティベーションサービス自身のインターフェイスと呼出サービス"
+"のインターフェイスの 両方を定義します。そのためアクティベーションサービスは"
+"コールバックして、プロトコルタイプと コーディネータの場所を識別するアクティ"
+"ベーションの結果(コンテキスト)を配達します。 図6にそのインターフェイスが示"
+"してありますが、そこではアクティベーションサービスは一方通行の オペレーション"
+"を持ち、<code>CreateCoordinationContext</code> メッセージを受信する ことを予"
+"期しています。それと同じように <code>CreateCoordinationContext</code> メッ"
+"セージを 送信したサービスは <code>CreateCoordinationContextResponse</code> "
+"メッセージで コールバックされるか、又は <code>Error</code> メッセージを通じて"
+"問題を通達されることを 予期しています。"
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr "登録"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+"コーディネータが具体化されて、その該当するコンテキストがアクティベーション "
+"サービスによって作成されると、登録サービスが作成されて表面化されます。 この"
+"サービスはパーティシパントが、特定のコーディネータに関連のあるプロトコル メッ"
+"セージを受信する為の登録をできるようにします。アクティベーションサービスと 同"
+"様に、登録サービスは非同期通信を想定しており、以下に示すような登録サービスと "
+"登録要求の両方の為の WSDL を指定します。"
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+"パーティシパントが、登録サービスを通じてコーディネータに登録されると、 コー"
+"ディネータが送信するメッセージ(例えば、“prepare to complete”、2段階プロトコ"
+"ルの場合は “complete”)を受信するようになります。コーディネータのプロトコルが"
+"サポートする場合は、 パーティシパントはコーディネータにメッセージを送り返すこ"
+"ともできます。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr "完了"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+"ターミネータ(terminator)の役目は通常クライアントアプリケーションが 演じま"
+"す。これは適切な時点でコーディネータに対して、登録してあるパーティシパント で"
+"使用している特定の調整機能を実行して、プロトコルをその完了まで駆動するように "
+"依頼します。完了すると、クライアントアプリケーションはその活動の結果報告を 受"
+"けますが、これは単純な成功/失敗の通知から活動状態の詳細を持つデータ構成まで"
+"の 変化幅があります。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr "WS-Transaction"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+"過去には、伝統的なトランザクションシステム同士に会話をさせることは 稀にしか達"
+"成できない神聖なことでした。しかし Web サービスの出現により これまでにない相"
+"互オペレーションの技術を活用する機会が、エンタープライズレベルの アプリケー"
+"ションのバックボーンをすでに構成している既存のトランザクション プロセッシング"
+"システム群を結合できるようにしています。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr "WS-Coordination の基盤"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+"WS-Transaction が伝統的なトランザクションプロトコルに差を付ける重要な 側面は"
+"同期の要求/応答モデルが想定されていないことです。このモデルは WS-Transaction "
+"が、下図に示してあるように、自身の通信パターンがデフォルトで 非同期である WS-"
+"Coordination プロトコルに階層化されている事実に由来しています。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr "WS-Coordination、 WS-Atomic Transaction、及び WS-Business Activity"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+"Web サービス調整は WS-Transaction のようなプラグインされることになる 特定の調"
+"整プロトコルの為の汎用フレームワークを提供します。 WS-Coordination がコンテキ"
+"スト管理のみを提供することを思い出して 下さい。これはコンテキストを作成できる"
+"ようにして、そのコンテキストを 使用して活動が登録できるようにします。WS-"
+"Transaction は WS-Coordination で 提供されるコンテキスト管理フレームワークを"
+"2つの方法で増強します。1つめは WS-Coordination コンテキストを拡張してトラン"
+"ザクションコンテキストを作成 することです。2つめはアクティベーションと登録に"
+"多数の追加サービス(Completion、 CompletionWithAck、PhaseZero、2PC、"
+"OutcomeNotification、BusinessAgreement 及び BusinessAgreementWithComplete)と"
+"2つのプロトコルメッセージセット(WS-Transaction 内で サポートされている各ト"
+"ランザクションモデル毎に1つ)の引数を付けて、WS-Coordination プロトコル イン"
+"フラストラクチャの上に完全専従のトランザクションコーディネータを構築すること"
+"です。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr "WS-Transaction アーキテクチャ"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+"WS-Transaction はサービスとパーティシパントの概念を区別した役目としてサポー"
+"ト して、トランザクション認識のサービスとトランザクションの期間中にそのサービ"
+"スの 代理として行動するパーティシパントとを分別します。トランザクションサービ"
+"スは ビジネスレベルのプロトコルを扱い、前述にあるようにパーティシパントは背後"
+"にある WS-Transaction プロトコルを扱います。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr "WS-Transaction のグローバルビュー"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+"トランザクション認識のサービスは、トランザクションの有効範囲内で実践される 必"
+"要のあるビジネス論理、あるいは作業をカプセル化します。この作業は、トランザク"
+"ションも コミットしない限りはアプリケーションによって確認されないため、制御は"
+"最終的に アプリケーションから削除されてトランザクションの領域に配置されます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+"パーティシパントは、トランザクションコーディネータの権限下で、トランザクショ"
+"ン 認識の Web サービスにより実行される作業の結果を制御します。上記の図では、 "
+"サービスの代表としてトランザクションプロトコルメッセージを管理する 関連パー"
+"ティシパント1つを持つ各サービスが示されています。下記の図では、単独のサービ"
+"スと その関連パーティシパントを持つクライアントアプリケーションが1つクローズ"
+"アップで 示されています。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr "トランザクショナルサービスとパーティシパント"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+"トランザクション認識の Web サービスとそのパーティシパントは両方とも 共有のト"
+"ランザクショナルリソースにサービスし、いくつかの API を通じて その両者間に制"
+"御関係があります。これは Java プラットフォームでは JAXTX です。 上記の図に示"
+"されている例では、データベースがトランザクショナル JDBC データベース ドライ"
+"バーを通じてアクセスされると想定されており、ここでは SQL ステートメントは そ"
+"のドライバーを通じてプロセッシングの為にデータベースに送られることになりま"
+"す。 しかし、それらのステートメントが試験的であり、トランザクションがコミット"
+"した場合 にのみコミットします。これを行うには、ドライバー/データベースはパー"
+"ティシパントと、 トランザクション結果をデータベースに報告するトランザクション"
+"とを関連付けします。 Web サービス上の全てのトランザクショナル呼出はトランザク"
+"ションコンテキストを運び ますので、データベースを使って作業しているパーティシ"
+"パントは特定のトランザクションの 範囲内でトランザクションナルサービスが行った"
+"作業を識別することが出来て、その作業を コミットするか、又はロールバックしま"
+"す。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+"クライアントの側では、複雑度は少なくなります。その API を通して、クライアン"
+"ト アプリケーションはパーティシパントをトランザクションに登録します。この登録"
+"を 通じてトランザクションの終結を制御します。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr "WS-Transaction モデル"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+"伝統的なトランザクションモデルが Web サービスには適切でないと言う状況で、 次"
+"のような疑問が出てきます。「どのタイプのモデル、あるいはプロトコルが 適切"
+"か?」この疑問への答えは、Web サービストランザクションがその範囲内で デプロイ"
+"される状況が広範囲に及ぶためどの特定のプロトコルも単独では十分でないと 言うこ"
+"とです。そこで、WS-Transaction 仕様は、それぞれが特定の種類の B2B 交流の セマ"
+"ンティクスをサポートする2つの独立したモデルを提案します。以下のセクションで "
+"これらの2つの WS-Transaction モデルを説明します。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+"WS-Coordination と同様に、2つの WS-Transaction モデルは拡張可能で、 必要に応"
+"じてプロトコルを注文仕立てするための実装ができるようになります。 (例えば、そ"
+"れらのデプロイメント環境に適合するように)"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr "アトミックトランザクション (AT)"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+"原子性トランザクション、いわゆるアトミックトランザクション (AT)、は伝統的な "
+"ACID トランザクションに似ており、ACID セマンティクスが適切となる短期間の 交流"
+"をサポートするように意図されています。AT の有効範囲内では、サービスは 一般的"
+"にデータベースやメッセージキューなどのトランザクション認識のリソースを トラン"
+"ザクションの制御下で間接的にパーティシパントとして採り入れます。 トランザク"
+"ションが終結すると、AT の結果決定はその後パーティシパントを通じて 雇用されて"
+"いる各リソースに伝播されます。そしてそれぞれによって適切なコミット、又は ロー"
+"ルバックのアクションが実施されます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+"このプロトコルは、企業の骨組みをすでに形成している伝統的なトランザクション シ"
+"ステムで起用されているプロトコルに非常に似ています。このプロトコルは、 全ての"
+"サービス(及び関連したパーティシパント)が ACID セマンティクスを 提供するこ"
+"と、そして原子性のトランザクションの使用はいずれもこれが適切な 環境と状況(信"
+"頼できるドメイン内で短期間)で発生することを想定しています。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+"原子性トランザクションを開始するために、クライアントアプリケーションは先ず、 "
+"WS-Transaction をサポートする WS-Coordination コーディネータ Web サービスを "
+"配置しなければなりません。それが配置されると、クライアントはアクティベーショ"
+"ン サービスに対して WS-Coordination CreateCoordinationContext メッセージを送"
+"信 して、http://schemas.xmlsoap.org/ws/2004/10/wsat をその調整タイプとして指"
+"定し、 アクティベーションサービスから適切な WS-Transaction コンテキストを取り"
+"戻します。 CreateCoordinationContext メッセージへの応答(トランザクションコン"
+"テキスト)は その CoordinationType 要素を WS-Atomic Transaction ネームスペー"
+"ス http://schemas.xmlsoap.org/ws/2004/10/wsat にセットしてあり、パーティシパ"
+"ントが採用される 原子性トランザクションコーディネータの終点(WS-Coordination "
+"登録サービス)への参照も含まれています。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+"コーディネータからトランザクションコンテキストを取得した後、クライアント アプ"
+"リケーションは Web サービスとの交流に進んでそのビジネスレベルの作業を 達成し"
+"ます。ビジネス Web サービスでのそれぞれの呼び出しで、クライアントは トランザ"
+"クションコンテキストを SOAP ヘッダブロックに挿入します。そして 各呼び出しがト"
+"ランザクションにより暗黙に機会を与えられるようにします。 WS-Atomic "
+"Transaction 認識の Web サービスをサポートするツールキットは SOAP ヘッダブロッ"
+"ク内にあるコンテキストをバックエンドオペレーションに 相互関係づける機能を提供"
+"します。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+"全ての必要なアプリケーションレベルの作業が完了すると、クライアントは サービス"
+"への変更はいずれも永久化の状態にする意図を持ってそのトランザクションを 終結す"
+"ることができます。これを実施するには、クライアントアプリケーションは先ず、 "
+"Completion プロトコルの為にそれ自身のパーティシパントを登録します。登録が 終"
+"了すると、パーティシパントはコーディネータに対してトランザクションのコミッ"
+"ト、 又はロールバックを試みるように指示します。コミットかロールバックのオペ"
+"レーションが 完了すると、状態はパーティシパントに戻されてそのトランザクション"
+"の結果を表示する ようになります。 "
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+"Completion プロトコルは簡単なものですが、そこには結果に対する決定をする為に "
+"他のいくつかのプロトコルを実行する必要があると言う事実が隠れています。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+"これらのプロトコルの1つめは、オプションの Volatile2PC です。Volatile2PC プロ"
+"トコルは 以前に説明してある同期化プロトコルに対する WS-Atomic トランザクショ"
+"ンの 同等物です。これは標準的には、アプリケーションのパフォーマンスを向上する"
+"ために 使用されている揮発性の(キャッシュ化)状態をWeb サービスがフラッシュす"
+"る 必要のある部分でトランザクションがコミットする前にデータベースに対して実行"
+"されます。 フラッシュされると、データはそれから2段階認識のパーティシパントに"
+"よって制御されます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+"全ての Volatile2PC パーティシパントは、トランザクションが完了間近である こと"
+"を通達(prepare メッセージ経由)されて、それらのパーティシパントは prepared、"
+"aborted、又は readonly メッセージで応答することができます。 この段階での障害"
+"はいずれもトランザクションがロールバックする原因になります。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+"Volatile2PC prepare の後、WS-Atomic Transaction 内で実行する次の プロトコル"
+"は Durable2PC です。Durable2PC (2PC は2段階コミットの略字) プロトコルは "
+"WS-Atomic Transaction の核心になるもので、トランザクション内の パーティシパン"
+"ト間に必要な同意をもたらして、トランザクションが安全に 終結するようにするもの"
+"です。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+"2段階コミットプロトコルはパーティシパント間の原子性を確証する為に使用される"
+"もので、 推測される中止技術を使用する古典的な2段階コミットをベースにしていま"
+"す。第1段階では コーディネータが prepare メッセージを送った時にパーティシパ"
+"ントはトランザクションの 範囲内で発生した状態変化を恒久化して、それらの変更が"
+"後でロールバック、又はコミット できるようにしなければなりません。このことは、"
+"原子性トランザクションが まだロールバックできるため、オリジナルの状態はいずれ"
+"もこの時点では消失しないように する必要があると言うことです。パーティシパント"
+"が準備できない場合、コーディネータに(中止メッセージを介して) 通達しなければ"
+"ならず、そうするとトランザクションは最終的にロールバックされます。パーティシ"
+"パントが、 トランザクションの期間中にいずれの作業もしていない、あるいは状態を"
+"変更した作業をしていないサービスに ついて責務を持つ場合は readonly メッセージ"
+"を送ることができ、コミットプロトコルの第2段階から外され ます。それ以外の場合"
+"は準備のメッセージがパーティシパントにより送信されます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+"第1段階で障害が発生しなかったと想定して、第2段階でコーディネータはパーティ"
+"シパントに コミットメッセージを送信します。パーティシパントはそれらの関連した"
+"サービスに よってなされた試験的な作業を永久化します。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+"トランザクションがただ1つのパーティシパントだけを巻き込んでいる場合は、 WS-"
+"Atomic Transaction は1段階コミットの最適化をサポートします。パーティシパント"
+"が 1つだけですから、その決定は暗黙に同意に到達するそのため、コーディネータは"
+"2つの段階を 経てトランザクションを駆動する必要はありません。最適化してある"
+"ケースでは、パーティシパントは 単にコミットすることを指示され、トランザクショ"
+"ンの結果はその単独パーティシパントだけのものですから トランザクションコーディ"
+"ネータはその決定に関して情報を記録する必要はありません。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+"以下の図:<footnote> <para>WS-Atomic Transaction 仕様から再描画したものです。"
+"</para> </footnote> は WS-Atomic Transaction のトランザクション 状態とコー"
+"ディネータとパーティシパント間のメッセージ交換を示しています。 コーディネータ"
+"生成のメッセージは実線で示してあり、パーティシパントのメッセージは 断線で示し"
+"てあります。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr "2段階コミット状態転移"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+"2PC プロトコルが終了すると、最初にトランザクション終結を開始した Completion "
+"プロトコルは 完了できるようになり、クライアントアプリケーションに対してトラン"
+"ザクションがコミット されたか、又はロールバックされたかを通達することができま"
+"す。さらには、Volatile2PC プロトコルも完了できます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+"Volatile2PC の準備段階のように最終段階はオプションであり、トランザクションが "
+"完了した時にそれらがリソースを開放できるように(例えば、データベース接続を接"
+"続のプールに戻す)、 標準的にパーティシパントに通達するのに使用できます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+"登録済みの Volatile2PC パーティシパントはどれもトランザクションが 終結した後"
+"に呼び出されてトランザクションが完了した状態を通達されます。 (コーディネータ"
+"は完了済みか、中止済みのメッセージを送ります)トランザクションは 終結していま"
+"すから、この時点でのパーティシパントの障害は無視されます。これは 基本的に社交"
+"的な通信でありトランザクションの結果に何も影響ありません。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+"最後に AT 内の各ステージを通過した後には、以下の図にあるような  AT を 全体と"
+"して構成する個別のプロトコルの入り込んだ網羅を見ることができます。"
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr "AT モデル"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr "ビジネス活動  (BA)"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+"ほとんどのビジネス対ビジネスのアプリケーションは、均一的な結果と正しい実行を "
+"保証する為にトランザクショナルサポートを必要とします。これらのアプリケーショ"
+"ンは 長期間実行の演算、緩い結合のシステムとデータ共有をしないコンポーネント、"
+"場所、 又は管理などを巻き込んでおり、そのようなアーキテクチャ内で原子性のトラ"
+"ンザクションを 統合するのは難しい状態です。例えば、オンラインのブックショップ"
+"がある個人の為に 特定の期間だけ本を保留しておいたとします。しかし、その個人が"
+"その期間内に本を 購入しない場合は、他の客のために本を棚に戻します。さらには、"
+"誰も無限的にストックの 供給をできないため、一部のオンラインショップは客の為に"
+"本を保留しているように見えても、 実際には他の客にその保留物を先取りさせる(例"
+"えば、同じ本が同時に複数予約されている場合)かも しれません。その場合、最初の"
+"客は注文した本が無くなったことを知るか、あるいはそれを再度 予約する必要がある"
+"かも知れません。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+"ビジネス活動(BA)は特に長期間交流の為に設計されたもので、そこでは、 専従的に"
+"リソースをロックすることはほとんど不可能で非現実的になります。 このモデルで"
+"は、サービスは作業をするように依頼されて、それらのサービスが いかなる作業をも"
+"元に戻すことができる部分では、 BA が後で作業を取り消す決断をした場合 (例え"
+"ば、BA が障害を受けた時など)、 BA がサービスにその復元動作を実行するように "
+"指示できることをサービスが BA に対してを伝えます。ビジネス活動の為のキーポイ"
+"ントは、 サービスがその作業を実施する手段とその補正の提供手段は WS-Business "
+"Activity 仕様の 領域ではなく、サービス提供者の実装決定であると言う点です。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+"WS- Business Activity は単に Web サービスベースのアプリケーションの為にプロト"
+"コルを 定義して既存のビジネスプロセッシングとワークフローシステムを有効にする"
+"ことで、 それらのプロプライエタリメカニズムを包み込んで実装とビジネス境界全域"
+"に渡って 相互オペレーションを得るようにします。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+"ビジネス活動はいくつかの範囲(scope)に分けることができて、そこでは1つの範囲"
+"は Web サービスのコレクションを使用したビジネスタスク、又は作業の単位と なり"
+"ます。そのような範囲群は任意のレベルでネスト化が可能で、ペアレントと チャイル"
+"ドの関係を構成することができます。その中ではペアレント範囲はどの チャイルドタ"
+"スクが、特定のビジネス活動の為の全体的な結果プロトコル内に 含まれるべきかを選"
+"択する能力を持ちます。そして明確に原子性でない結果も 可能になります。伝統的な"
+"ネスト化のトランザクションに似た方法で、チャイルド タスクがエラーを経験してい"
+"る場合、そのプロセスを補正して継続できるペアレントに よって保護されることが出"
+"来ます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+"チャイルドタスクが完了すると、それはビジネス活動を退去するか、あるいは 実行し"
+"た作業は後で補正できることの信号をペアレントに送信します。後者の ケースでは、"
+"チャイルドによって実行された作業が最終的にやり直しの必要を 持つ場合、補正タス"
+"クがペアレントによって呼び込まれます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+"依頼された時にのみパーティシパントがコーディネータにその状態を通達すると言う "
+"WS-Atomic Transaction プロトコルモデルとは異なり、ビジネス活動内のタスクは 要"
+"求を待たずに直接ペアレントにその結果を指定することができます。この特徴は、 タ"
+"スクが失敗して、その通知がビジネス活動例外ハンドラーによって使用されて、 トラ"
+"ンザクションが失敗を認めることを黙って待つことなしに ゴールを修正してプロセス"
+"を前に駆動させる点で役に立ちます。良く機能するように 期待されている限りは、良"
+"く設計されたビジネス活動は前進的である必要があります。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr "この全てを支持しているのは、3つの基盤となる推測です:"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+"全ての状態転移は、アプリケーションの状態と coordination メタデータ (送信済み"
+"と受信済みのメッセージ記録)を含んで信頼できる方法で記録されています;"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+"全ての要求メッセージが承諾されて、問題は可能な限り早期に検出できる ようにしま"
+"す。これにより、不要なタスクの実行を避けて、訂正が簡単で 負担が少ない時に早期"
+"に問題を検出することもできます;"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+"原子性トランザクションの使用と同様に、応答とは要求の出力としてでなく、別の オ"
+"ペレーションとして定義されています。メッセージ入力/出力の実装は標準的に 一部"
+"のビジネス活動応答には短すぎるタイムアウト設定を持っています。応答が タイムア"
+"ウトの後まで受信されない場合は、リセットされます。これは応答が 受信されるまで"
+"繰り返されます。要求レシーバーは受信した1つの同一要求以外は すべて破棄しま"
+"す。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+"原子性トランザクションの使用と同様に、ビジネス活動モデルは複数のプロトコルを"
+"持ち ます: <code>BusinessAgreementWithParticipantCompletion</code> と "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> です。しかし、 コー"
+"ディネータからパーティシパントに下方に駆動する AT プロトコルとは異なり、 この"
+"プロトコルはもっと多くパーティシパントから上方に駆動されます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+"<code>BusinessAgreementWithParticipantCompletion</code> プロトコルの元で、 "
+"チャイルドの活動は最初は Active 状態で作成されます。それが実施するように与え"
+"られた 作業を終了して、ビジネス活動(BA)の範囲内(活動が不変データに於いてオ"
+"ペレートするなど)で 要求される参加がもう存在しない場合は、チャイルドはペアレ"
+"ントに exited メッセージを 一方的に送信することができます。しかし、チャイルド"
+"がタスクを終了して BA 内でまだ継続したい 場合は、それが実行した作業を補正する"
+"能力を持つ必要があります。このケースではチャイルドは completed メッセージをペ"
+"アレントに送信して、ペアレントから BA の最終結果を受け取ることを 待ちます。こ"
+"の結果とは BA が正しく完了したことを意味する close メッセージか、あるいはペア"
+"レント 活動がチャイルドタスク作業の反転を必要とすることを意味する compensate "
+"メッセージのどちらかに なります。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+"<code>BusinessAgreementWithCoordinatorCompletion</code> プロトコルは、 補正で"
+"きる場合でもチャイルドが自動的にビジネス活動内への参加を停止することを 決定で"
+"きないこと以外では、<code>BusinessAgreementWithParticipantCompletion</code> "
+"プロトコルと同一です。チャイルドタスクは、チャイルドが作業を実行するための要"
+"求を全て 受けた時にその通達に於いてペアレントに依存してします。これはペアレン"
+"トがチャイルドに complete メッセージを送信することで実行されます。チャイルド"
+"はそれから、 <code>BusinessAgreementWithParticipantCompletion</code> プロトコ"
+"ル内で 実行するのと同じ行動をします。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+"AT  モデルに比較した BA モデルの利点は、長期間リソースをロックできない、又は "
+"しないサービスの参加を認可することです。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+"完全な ACIDセマンティクスは BA によって維持されていませんが、それでも整合性は"
+"まだ 補正によって維持できます。但し、正確な補正のアクション(及び全体的システ"
+"ム整合性)を 書くタスクは BA の制御下にあるサービスの開発者に委任されます。そ"
+"のような補正は 下方互換のエラーリカバリを使用するかも知れませんが、標準的には"
+"上方互換リカバリを 採用します。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr "アプリケーションメッセージ"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+"アプリケーションメッセージとは、ビジネスプロセスの作業を構成するパーティ間で "
+"送信される要求と応答のことです。そのようなメッセージはいずれも XTS では不明瞭"
+"だと 判断されて、そこには義務的なメッセージ形式やプロトコルバインディングやエ"
+"ンコーディング スタイルがないため、開発者は自由に適切な Web サービスプロトコ"
+"ルを使用することができます。 XTS では、トランザクションコンテキストは SOAP "
+"メッセージのヘッダー内で伝播されます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+"XTS は製品出荷の状態でサービス開発者へのサポートを提供して、JBoss、"
+"Weblogic、 及び Glue platforms1 上で WS-T 認識のサービスを構築します。クライ"
+"アントとサービスの 両方で自動コンテキスト処理の為のインターセプタによるこの提"
+"供は、開発者の作業負担を 多大に簡素化して、開発者はトランザクションインフラス"
+"トラクチャが仕事の邪魔することを 心配しないでビジネス論理を書くことに集中でき"
+"るようになります。インターセプタは単に これらのメッセージのセマンティクスを変"
+"更しないでアプリケーションメッセージへのコンテキスト 要素を追加したり削除した"
+"りします。WS-C context を使って何をすべきか判っているサービスは いずれもこれ"
+"を使用できます。そのコンテキストを理解できないサービス( WS-C、WS-Atomic "
+"Transaction、 及び WS-Business Activity 認識でないサービス)はこのコンテキス"
+"トを無視する可能性があります。 ここで重要なことは、XTS がユーザーの介入なしに"
+"コンテキストを管理できると言う点です。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr "WS-C, WS-Atomic Transaction 及び WS-Business Activity Messages"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+"アプリケーション又はサービスの開発者は稀にしか、トランザクショナルインフラス"
+"トラクチャ (トランザクションマネージャと全てのパーティシパント)によって交換"
+"されるメッセージを見たり あるいはそれに興味を示したりしませんが、どのような交"
+"換が発生しているのかを理解することは 役に立ちます。そうすると背後にあるモデル"
+"がアーキテクチャ全体に適合するようにできます。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+"XTS の中では WS-C と WS-Atomic Transaction と WS-Business Activity の 独自の"
+"メッセージは HTTP 上で SOAP メッセージングを使用して配送されます。 伝播される"
+"メッセージのタイプには、begin や prepare のような標準のトランザクション オペ"
+"レーションを実行する指示が含まれています。"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+"XTS メッセージはアプリケーションメッセージをどのような形、あるいは形式でも 妨"
+"害することはなく、またトランザクション特有のメッセージと同じトランスポートを "
+"使用するアプリケーションの為の要求もありません。例えば、影では XTS メッセージ"
+"は 異なるメカニズムを使用して配送されていますが、クライアントアプリケーション"
+"が そのアプリケーション特有のメッセージを SMTP 上で SOAP RPC を使用して配送す"
+"ることは 妥当なことです。"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr "概要"
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""
+"XTS はインターネット全域に於いて企業間で実行されるトランザクションを許可する"
+"ように 設計されている調整インフラストラクチャを提供します。このインフラストラ"
+"クチャは WS-C、WS-Atomic Transaction、及び WS-Business Activity 仕様をベース"
+"にしています。 XTS は、2つの種類のトランザクションをサポートします。原子性ト"
+"ランザクションと ビジネス活動です。これらは随意な方法で組み合わせることが出来"
+"て、背後にある問題の トランザクション要求へエレガントにマップすることができま"
+"す。この全体のインフラストラクチャの 使用は、その機能が簡単なトランザクショニ"
+"ング API を通じて表面化されていると言う事実により、 単純なものです。さらに"
+"は、XTS は全ての必要な配管処理を提供して、アプリケーションに関する アプリケー"
+"ションとトランザクション側面を分離して、システムのトランザクション性がシステ"
+"ム自身の 機能側面を邪魔しないことを確実にします。"

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

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

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Book_Info.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Book_Info.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Getting_Started.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Getting_Started.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Getting_Started.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,192 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Introduction.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Introduction.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Introduction.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,274 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Participants.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Participants.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Participants.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,458 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid ""
+"All Business Activity participants are instances of the following interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Preface.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Preface.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Preface.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Revision_History.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Revision_History.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Revision_History.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Stand-alone_Coordinator.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Stand-alone_Coordinator.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Stand-alone_Coordinator.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr ""
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/The_XTS_API.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/The_XTS_API.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/The_XTS_API.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,548 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactional_Web_Services.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactional_Web_Services.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactional_Web_Services.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,107 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactions_Overview.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactions_Overview.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactions_Overview.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,655 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/Transactions_Web_Services_Programmers_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.pot
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,951 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-01 01:36+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Getting_Started.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Getting_Started.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Getting_Started.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,191 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Introduction.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Introduction.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Introduction.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,273 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/JBoss_Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Participants.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Participants.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Participants.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,457 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid ""
+"All Business Activity participants are instances of the following interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Stand-alone_Coordinator.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Stand-alone_Coordinator.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Stand-alone_Coordinator.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,34 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr ""
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/The_XTS_API.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/The_XTS_API.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/The_XTS_API.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,547 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactional_Web_Services.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactional_Web_Services.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactional_Web_Services.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,106 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactions_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactions_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactions_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,654 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/pt-BR/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,950 @@
+# Language pt-BR translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-01 01:36+0000\n"
+"PO-Revision-Date: 2008-09-01 01:36+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions Web Services Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "for Use with JBoss Enterprise Application Platform 4.3"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid "This book is about Programming for Transaction Web Services"
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:20
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:26
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Getting_Started.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Getting_Started.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Getting_Started.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,191 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Getting_Started.xml:6
+#, no-c-format
+msgid "Getting Started"
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:8
+#, no-c-format
+msgid "Creating and deploying participants"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:9
+#, no-c-format
+msgid ""
+"A participant is a software entity which is driven by the transaction "
+"manager on behalf of a Web service. The creation of participants is non-"
+"trivial since they ultimately reflect the state of a Web service’s back-end "
+"processing facilities which is a function of an enterprise’s own IT "
+"infrastructure. The most that can be said about the implementation of a "
+"participant without getting into detail about the back-end systems it "
+"represents, or the details of the underlying transaction protocol is that "
+"implementations must implement one of the following interfaces, depending "
+"upon the protocol it will participate within: <code>com.arjuna.wst."
+"Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</"
+"code>, or, <code>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com."
+"arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:15
+#, no-c-format
+msgid "Creating Client Applications"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:16
+#, no-c-format
+msgid ""
+"There are two aspects to a client application using XTS. The first is the "
+"transaction declaration aspects and the second is the business logic that "
+"the client application performs. The transaction declaration aspects are "
+"taken care of automatically with XTS’s client API. This API provides simple "
+"transaction directives like begin, commit, and rollback which the client "
+"application can use to initialize, manage, and terminate transactions. Under "
+"the covers, this API invokes (via SOAP) operations on the transaction "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:19
+#, no-c-format
+msgid ""
+"When the client application performs invocations on business logic Web "
+"services, then XTS does not dictate an API for that purpose. However, there "
+"is a requirement that whatever API is chosen, the XTS context be inserted "
+"onto outgoing messages, and extracted and associated with the current thread "
+"for incoming messages. To make the user’s life easier, the XTS software "
+"comes complete with three sets of “filters” which can perform the task "
+"automatically. These filters are designed to work with JAX-RPC and "
+"webMethods client libraries."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:23
+#, no-c-format
+msgid ""
+"If the user chooses to use a different SOAP client infrastructure, then the "
+"onus to perform client-side header processing rests with them. XTS does not "
+"provide client-side infrastructure for anything other than JAX-RPC or "
+"webMethods for this release."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:28
+#, no-c-format
+msgid "JAX-RPC Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:29
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC server-side context handler with the "
+"deployed web services, a handler chain must be included in the web services "
+"deployment descriptor. Please refer to the demo application <filename>jboss/"
+"webservices.xml</filename> deployment descriptor for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:33
+#, no-c-format
+msgid ""
+"In order to register the JAX-RPC client-side context handler used by the "
+"client applications, a handler chain must be included in the definition of "
+"the service-ref in the client web.xml deployment descriptor. Please refer to "
+"the demo application <filename>jboss/client-web-app.xml</filename> for an "
+"example of how this can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:37
+#, no-c-format
+msgid "webMethods Context Handlers"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:38
+#, no-c-format
+msgid ""
+"In order to register the webMethods server-side context handler with the "
+"deployed web services, the inbound and outbound interceptors must be "
+"configured in the web services deployment descriptor. An example of how this "
+"can be configured can be found in the demo application, for example, the "
+"<filename>RestaurantServiceAT.xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:42
+#, no-c-format
+msgid ""
+"In order to register the webMethods client-side context handler, the inbound "
+"and outbound interceptors must be configured in the <filename>glue-config."
+"xml</filename> deployment descriptor. Please refer to the soap interceptor "
+"section of the demo application glue-config.xml for an example of how this "
+"can be achieved."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:48
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:49
+#, no-c-format
+msgid ""
+"If you want to create multiple JBoss deploys on the same machine, then you "
+"may wish to look at <ulink url=\"http://www.yorku.ca/dkha/jboss/docs/"
+"MultipleInstances.htm\"><emphasis>Setting up multiple instances</emphasis></"
+"ulink> for information on what is required."
+msgstr ""
+
+#. Tag: title
+#: Getting_Started.xml:55
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:56
+#, no-c-format
+msgid ""
+"This chapter has provided a high-level overview of how to use each of the "
+"major software pieces of the Web Services transactions component of JBossTS. "
+"The Web Services transaction manager provided by JBossTS is the hub of the "
+"architecture and is the only piece of software that users’ software does not "
+"bind to directly. XTS provides header processing infrastructure for dealing "
+"with Web Services transactions contexts for both users’ client applications "
+"and Web services. For developing transaction participants, XTS provides a "
+"simple interface plus the necessary document handling code."
+msgstr ""
+
+#. Tag: para
+#: Getting_Started.xml:59
+#, no-c-format
+msgid ""
+"This chapter is meant as an overview only, and is unlikely to answer "
+"questions on more difficult and subtle aspects. For fuller explanations of "
+"the components, please refer to the appropriate chapter elsewhere in this "
+"document."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Introduction.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Introduction.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Introduction.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,273 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:8
+#, no-c-format
+msgid "JBossTS Web Services transactions overview"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:9
+#, no-c-format
+msgid ""
+"The XML transaction service component of JBossTS (shorthand referred to as "
+"XTS) supports the coordination of private and public Web services in a "
+"business transaction. Therefore, to understand XTS, you must be familiar "
+"with Web services, and also understand a little about transactions. This "
+"chapter introduces XTS and provides a brief overview of the technologies "
+"that form the Web services standard. Additionally, this chapter explores "
+"some of the fundamentals of transactioning technology and how it can be "
+"applied to Web services. Much of the content presented in this chapter is "
+"detailed throughout this guide; however, only overview information about Web "
+"services is provided. If you are new to creating Web services, please see "
+"consult your Web services platform documentation."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:12
+#, no-c-format
+msgid ""
+"JBossTS provides as the XTS component a transaction solution for Web "
+"services. Using XTS, business partners can coordinate complex business "
+"transactions in a controlled and reliable manner. The JBossTS Web Services "
+"API supports a transactional coordination model based on the WS-C, WS-Atomic "
+"Transaction and WS-Business Activity specifications. WS-C is a generic "
+"coordination framework developed by IBM, Microsoft and BEA, WS-Atomic "
+"Transaction and WS-Business Activity are transaction protocols that utilize "
+"this framework."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:15
+#, no-c-format
+msgid ""
+"Web services are modular, reusable software components that are created by "
+"exposing business functionality through a Web service interface. Web "
+"services communicate directly with other Web services using standards-based "
+"technologies such as SOAP and HTTP. These standards-based communication "
+"technologies allow Web services to be accessed by customers, suppliers, and "
+"trading partners, independent of hardware operation system or programming "
+"environment. The result is a vastly improved collaboration environment as "
+"compared to today&#39;s EDI and business-to-business (B2B) solutions—an "
+"environment where businesses can expose their current and future business "
+"applications as Web services that can be easily discovered and accessed by "
+"external partners."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:18
+#, no-c-format
+msgid ""
+"Web services, by themselves, are not fault tolerant. In fact, some of the "
+"reasons that make it an attractive development solution are also the same "
+"reasons that service-based applications may have drawbacks:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:23
+#, no-c-format
+msgid ""
+"Application components that are exposed as Web services may be owned by "
+"third parties, which provides benefits in terms of cost of maintenance, but "
+"drawbacks in terms of having exclusive control over their behavior;"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:28
+#, no-c-format
+msgid ""
+"Web services are usually remotely located which increases risk of failure "
+"due to increased network travel for invocations."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:33
+#, no-c-format
+msgid ""
+"Applications that have high dependability requirements, must find a method "
+"of minimizing the effects of errors that may occur when an application "
+"consumes Web services. One method of safeguarding against such failures is "
+"to interact with an application’s Web services within the context of a "
+"transaction. A transaction is simply a unit of work which is completed "
+"entirely, or in the case of failures is reversed to some agreed consistent "
+"state – normally to appear as if the work had never occurred in the first "
+"place. With XTS, transactions can span multiple Web services which mean that "
+"work performed across multiple enterprises can be managed with transactional "
+"support."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:37
+#, no-c-format
+msgid "Managing Service-Based Processes"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:38
+#, no-c-format
+msgid ""
+"XTS allows you to create transactions that drive complex business processes "
+"spanning multiple Web services. Current Web services standards do not "
+"address the requirements for a high-level coordination of services since in "
+"today’s Web services applications, which use single request/receive "
+"interactions, coordination is typically not a problem. However, for "
+"applications that engage multiple services among multiple business partners, "
+"coordinating and controlling the resulting interactions is essential. This "
+"becomes even more apparent when you realize that you generally have little "
+"in the way of formal guarantees when interacting with third-party Web "
+"services."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:42
+#, no-c-format
+msgid ""
+"XTS provides the infrastructure for coordinating services during a business "
+"process. By organizing processes as transactions, business partners can "
+"collaborate on complex business interactions in a reliable manner, insuring "
+"the integrity of their data - usually represented by multiple changes to a "
+"database – but without the usual overheads and drawbacks of directly "
+"exposing traditional transaction-processing engines directly onto the web. "
+"The following example demonstrates how an application may manage service-"
+"based processes as transactions:"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:45
+#, no-c-format
+msgid ""
+"The application in question allows a user to plan a social evening. This "
+"application is responsible for reserving a table at a restaurant, and "
+"reserving tickets to a show. Both activities are paid for using a credit "
+"card. In this example, each service represents exposed Web services provided "
+"by different service providers. XTS is used to envelop the interactions "
+"between the theater and restaurant services into a single (potentially) long-"
+"running business transaction. The business transaction must insure that "
+"seats are reserved both at the restaurant and the theater. If one event "
+"fails the user has the ability to decline both events, thus returning both "
+"services back to their original state. If both events are successful, the "
+"user’s credit card is charged and both seats are booked. As you may expect, "
+"the interaction between the services must be controlled in a reliable manner "
+"over a period of time. In addition, management must span several third-party "
+"services that are remotely deployed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:49
+#, no-c-format
+msgid ""
+"Without the backing of a transaction, an undesirable outcome may occur. For "
+"example, the user credit card may be charged, even though one or both of the "
+"bookings may have failed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:53
+#, no-c-format
+msgid ""
+"This simple example describes the situations where XTS excels at supporting "
+"business processes across multiple enterprises. This example is further "
+"refined throughout this guide, and appears as a standard demonstrator "
+"(including source code) with the XTS distribution."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:57
+#, no-c-format
+msgid "Servlets"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:58
+#, no-c-format
+msgid ""
+"The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based "
+"on one-way interactions of entities rather than traditional synchronous "
+"request/response RPC style interactions. Entities (for example, transaction "
+"participants) invoke operations on other entities (for example, the "
+"transaction coordinator) in order to return responses to requests. What this "
+"means is that the programming model is based on peer-to-peer relationships, "
+"with the result that all services, whether they are participants, "
+"coordinators or clients, must have an active component that allows them to "
+"receive unsolicited messages."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:62
+#, no-c-format
+msgid ""
+"In the current implementation of XTS, the active component is achieved "
+"through the use of Java servlet technology. Each endpoint that can be "
+"communicated with via SOAP/XML is represented as a servlet (and published "
+"within JNDI). Fortunately for the developer, this use of servlets occurs "
+"transparently. The only drawback is that (currently) clients must reside "
+"within a domain capable of hosting servlets, i.e., an application server. It "
+"is our intention that future versions of XTS will provide configurable "
+"deployment options, allowing servlets where required, but not mandating them."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:66
+#, no-c-format
+msgid "SOAP"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:67
+#, no-c-format
+msgid ""
+"SOAP has emerged as the de-facto message format for XML-based communication "
+"in the Web services arena. It is a lightweight protocol that allows the user "
+"to define the content of a message and to provide hints as to how recipients "
+"should process that message."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:71
+#, no-c-format
+msgid ""
+"SOAP messages can be divided into two main categories: Remote Procedure Call "
+"(RPC) and Document Exchange (DE). The primary difference between the two "
+"categories is that the SOAP specification defines encoding rules and "
+"conventions for RPC. The document exchange model allows the exchange of "
+"arbitrary XML documents - a key ingredient of B2B document exchange. XTS is "
+"based on the loosely coupled document-exchange style, yet it can support "
+"transactions spanning Web service that use either document-exchange or RPC."
+msgstr ""
+
+#. Tag: title
+#: Introduction.xml:75
+#, no-c-format
+msgid "Web Services Description Language (WSDL)"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:76
+#, no-c-format
+msgid ""
+"WSDL is an XML-based language used to define Web service interfaces. An "
+"application that consumes a Web service parses the service’s WSDL document "
+"to discover the location of the service, the operations that the service "
+"supports, the protocol bindings the service supports (SOAP, HTTP, etc), and "
+"how to access them (for each operation, WSDL describes the format that the "
+"client must follow)."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/JBoss_Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Participants.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Participants.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Participants.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,457 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Participants.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:11
+#, no-c-format
+msgid "The Participant: an Overview"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:12
+#, no-c-format
+msgid ""
+"The participant is the entity that performs the work pertaining to "
+"transaction management on behalf of the business services involved in an "
+"application. The Web service (for example, a theatre booking system) "
+"contains some business logic for reserving a seat, enquiring availability "
+"etc, but it will need to be supported by something that maintains "
+"information in a durable manner. Typically this will be a database, but it "
+"could be a file system, NVRAM, etc. Now, although the service may talk to "
+"the back-end database directly, it cannot commit or undo any changes it (the "
+"services) makes, since these are ultimately under the control of the "
+"transaction that scoped the work. In order for the transaction to be able to "
+"exercise this control, it must have some contact with the database. In XTS "
+"this is accomplished by the participant, and the role played by the "
+"participant between the transaction and back-end transaction processing "
+"infrastructure is shown in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: Participants.xml:19
+#, no-c-format
+msgid "Transactions, Participants, and Back-End Transaction Control"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:21
+#, no-c-format
+msgid ""
+"Each participant in XTS is related to either the Atomic Transaction or "
+"Business Activity protocols. In the following sections we’ll consider both "
+"protocols and their respective participants."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:25
+#, no-c-format
+msgid "Atomic Transaction"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:26
+#, no-c-format
+msgid ""
+"All Atomic Transaction participants are instances of one of the following "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:31
+#, no-c-format
+msgid "Durable2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:32
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Durable2PC protocol with "
+"the following signatures, as per the <interfacename>com.arjuna.wst."
+"Durable2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:38
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the <code>com.arjuna.wst."
+"Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant "
+"does not need to be informed of the transaction outcome as no state updates "
+"were made; Prepared, indicating the participant is prepared to commit or "
+"rollback depending on the final transaction outcome, and it has made "
+"sufficient state updates persistent to accomplish this; and Aborted, "
+"indicating the participant has aborted and the transaction should also "
+"attempt to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:43 Participants.xml:81
+#, no-c-format
+msgid ""
+"<emphasis>commit</emphasis>: the participant should make permanent the work "
+"that it controls. What it does will depend upon its implementation, for "
+"example, commit the reservation of the theatre ticket. The participant will "
+"then return an indication of whether or not it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:48 Participants.xml:86
+#, no-c-format
+msgid ""
+"<emphasis>rollback</emphasis>: the participant should undo the work that it "
+"controls. The participant will then return an indication of whether or not "
+"it succeeded."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:53 Participants.xml:91
+#, no-c-format
+msgid ""
+"<emphasis>commitOnePhase</emphasis>: if there is only a single "
+"TwoPCParticipant registered with the transaction, then the coordinator can "
+"optimize the protocol and simply tell the participant to commit: there is no "
+"need for a preparatory phase since consensus is implicit."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:58 Participants.xml:96
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: during recovery the participant can inquire as "
+"to the status of the transaction it was registered with. If that transaction "
+"is no longer available (has rolled back) then this operation will be invoked "
+"by the coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:63 Participants.xml:101
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: during recovery the participant can enquire as "
+"to the status of the transaction it was registered with. If an error occurs "
+"(for example, the transaction service is unavailable) then this operation "
+"will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:69
+#, no-c-format
+msgid "Volatile2PCParticipant"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:70
+#, no-c-format
+msgid ""
+"This participant supports the WS-Atomic Transaction Volatile2PC protocol "
+"with the following signatures, as per the <interfacename>com.arjuna.wst."
+"Volatile2Participant</interfacename> interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>prepare</emphasis>: the participant should perform any work "
+"necessary to allow it to either commit or rollback the work performed by the "
+"Web service under the scope of the transaction. The implementation is free "
+"to do whatever it needs to in order to fulfill the implicit contract between "
+"it and the coordinator. The participant is expected to indicate whether it "
+"can prepare or not by returning an instance of the com.arjuna.wst.Vote. "
+"Values are: ReadOnly, indicating the participant does not need to be "
+"informed of the transaction outcome as no state updates were made; Prepared, "
+"indicating the participant is prepared to commit or rollback depending on "
+"the final transaction outcome, and it has made sufficient state updates "
+"persistent to accomplish this; and Aborted, indicating the participant has "
+"aborted and the transaction should also attempt to do so."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:107
+#, no-c-format
+msgid "Business Activity"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:108
+#, no-c-format
+msgid ""
+"All Business Activity participants are instances of the following interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:113
+#, no-c-format
+msgid "BusinessAgreementWithParticipantCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:114
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithParticipantCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithParticipantCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:120 Participants.xml:158
+#, no-c-format
+msgid ""
+"<emphasis>close</emphasis>: the transaction has completed successfully. The "
+"participant previously informed the coordinator that it was ready to "
+"complete."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:125
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work. The participant cannot have informed the "
+"coordinator that it has completed."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:130 Participants.xml:168
+#, no-c-format
+msgid ""
+"<emphasis>compensate</emphasis>: the transaction has canceled. The "
+"participant previously informed the coordinator that it had finished work "
+"but could compensate later if required, so it is now requested to do so."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:135 Participants.xml:178
+#, no-c-format
+msgid "<emphasis>status</emphasis>: return the status of the participant."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:140 Participants.xml:183
+#, no-c-format
+msgid ""
+"<emphasis>unknown</emphasis>: if the participant inquires as to the status "
+"of the transaction it was registered with and that transaction is no longer "
+"available (has rolled back) then this operation will be invoked by the "
+"coordination service."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:145 Participants.xml:188
+#, no-c-format
+msgid ""
+"<emphasis>error</emphasis>: if the participant enquired as to the status of "
+"the transaction it was registered with and an error occurs (for example, the "
+"transaction service is unavailable) then this operation will be invoked."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:151
+#, no-c-format
+msgid "BusinessAgreementWithCoordinatorCompletion"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:152
+#, no-c-format
+msgid ""
+"This participant supports the WS-T "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the "
+"following signatures, as per the <interfacename>com.arjuna.wst."
+"BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> "
+"interface:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:163
+#, no-c-format
+msgid ""
+"<emphasis>cancel</emphasis>: the transaction has canceled, and the "
+"participant should undo any work."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:173
+#, no-c-format
+msgid ""
+"<emphasis>complete</emphasis>: the coordinator is informing the participant "
+"that all work it needs to do within the scope of this business activity has "
+"been received."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:194
+#, no-c-format
+msgid "BAParticipantManager"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:195
+#, no-c-format
+msgid ""
+"In order for the Business Activity protocol to work correctly, the "
+"participants must be able to autonomously signal the coordinator that they "
+"have left the activity (exited) or are ready to complete and (if necessary) "
+"compensate (completed). Unlike the Atomic Transaction protocol, where all "
+"interactions between the coordinator and participants are instigated by the "
+"coordinator when the transaction terminates, this interaction pattern "
+"requires the participant to be able to talk to the coordinator at any time "
+"during the lifetime of the business activity."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:199
+#, no-c-format
+msgid ""
+"As such, whenever a participant is registered with a business activity, it "
+"receives a handle on the coordinator. This handle is an instance of the "
+"<interfacename>BAParticipantManager</interfacename> interface, located in "
+"<code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:204
+#, no-c-format
+msgid ""
+"<emphasis>exit</emphasis>: the participant has exited the business activity. "
+"The participant uses this to inform the coordinator that is has left the "
+"activity. It will not be informed when (and how) the business activity "
+"terminates."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:209
+#, no-c-format
+msgid ""
+"<emphasis>completed</emphasis>: the participant has completed it works, but "
+"wishes to continue in the business activity, so that it will eventually be "
+"told when (and how) the activity terminates. The participant may later be "
+"asked to compensate for the work it has done."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:214
+#, no-c-format
+msgid ""
+"<emphasis>fault</emphasis>: the participant encountered an error during "
+"normal activation and has compensated. This places the business activity "
+"into a mandatory cancel-only mode."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:222
+#, no-c-format
+msgid "Participant Creation and Deployment"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:223
+#, no-c-format
+msgid ""
+"As has been shown, the participant provides the plumbing that drives the "
+"transactional aspects of the service. This section discusses the specifics "
+"of Participant programming and usage."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:227
+#, no-c-format
+msgid "Implementing Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:228
+#, no-c-format
+msgid ""
+"Implementing a participant is, in theory, a relatively straightforward task, "
+"though depending on the complexity of the transactional infrastructure that "
+"the participant is to manage, the actual size and complexity of a "
+"participant will vary. The participant interfaces can be found under "
+"<code>com.arjuna.wst</code>. Your implementation must implement one of these "
+"interfaces."
+msgstr ""
+
+#. Tag: title
+#: Participants.xml:233
+#, no-c-format
+msgid "Deploying Participants"
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:234
+#, no-c-format
+msgid ""
+"In order to allow Participants to be located remote from the Transaction "
+"Manager, XTS includes transparent message routing functionality. The "
+"Participant classes are not exposed directly as web services, but rather "
+"registered with a web service which receives messages from the Transaction "
+"Manager and maps them to appropriate method invocations on the relevant "
+"Participant instance. Transactional web services will typically enroll a new "
+"Participant instance of the desired type for each new transaction. A unique "
+"identifier must be provided at enrollment time and will be used to map "
+"transaction protocol messages to the appropriate participant instance. Note "
+"that Participant method invocations do not occur in a specific transaction "
+"context. Therefore, if your Participant implementation requires knowledge of "
+"the transaction context (for example, to look up state information in a "
+"persistent store) then you should provide this to the Participant instance, "
+"typically as an argument to the constructor function. Sample Participant "
+"implementations and usage can be found in the demonstration application "
+"included with XTS."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:238
+#, no-c-format
+msgid ""
+"Any application code which creates and enrolls Participants must be deployed "
+"along with the parts of XTS necessary for receiving and processing incoming "
+"messages from the Transaction Manager. This typically means including the "
+"appropriate XTS .jar, .wsr and .war files in your application. If you are "
+"deploying your application only a server which does not already contain a "
+"Transaction Manger installation, you will also need to deploy the XTS "
+"configuration files."
+msgstr ""
+
+#. Tag: para
+#: Participants.xml:242
+#, no-c-format
+msgid ""
+"In early access releases of the XTS product, the Transaction Manager and "
+"participant management functions are not provided as separable components. "
+"Configuration and deployment of the participant infrastructure is therefore "
+"as in the Transaction Manger section above. More flexible deployment of the "
+"XTS components will be available in the final release."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Stand-alone_Coordinator.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Stand-alone_Coordinator.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Stand-alone_Coordinator.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,34 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:6
+#, no-c-format
+msgid "Stand-alone Coordinator"
+msgstr ""
+
+#. Tag: title
+#: Stand-alone_Coordinator.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Stand-alone_Coordinator.xml:9
+#, no-c-format
+msgid ""
+"For configuring a stand-alone Web Services transaction coordinator, see the "
+"relevant chapter in the System Administrator’s Guide."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/The_XTS_API.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/The_XTS_API.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/The_XTS_API.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,547 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: The_XTS_API.xml:6
+#, no-c-format
+msgid "The XTS API"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:9
+#, no-c-format
+msgid ""
+"This chapter shows how to use the XTS API. This is of use both at the client-"
+"side where applications consume transactional Web services, and at the "
+"service/participant side where transactions need to be coordinated with back-"
+"end systems."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:15
+#, no-c-format
+msgid "API for the Atomic Transaction protocol"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:16
+#, no-c-format
+msgid ""
+"The following classes and interfaces are located within the <package>com."
+"arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:20
+#, no-c-format
+msgid "Vote"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:21
+#, no-c-format
+msgid ""
+"During the two-phase commit protocol, a participant will be asked to vote on "
+"whether or not it can prepare to confirm the work that it controls. It must "
+"return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:27
+#, no-c-format
+msgid ""
+"<emphasis>Prepared</emphasis>: the participant indicates that it can prepare "
+"if asked to by the coordinator. It will not have committed at this stage "
+"however, since it does not know what the final outcome will be."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:32
+#, no-c-format
+msgid ""
+"<emphasis>Aborted</emphasis>: the participant indicates that it cannot "
+"prepare and has in fact rolled back. The participant should not expect to "
+"get a second phase message."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:37
+#, no-c-format
+msgid ""
+"<emphasis>ReadOnly</emphasis>: the participant indicates that the work it "
+"controls has not made any changes to state that require it to be informed of "
+"the final outcome of the transaction. Essentially the participant is "
+"resigning from the transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:42
+#, no-c-format
+msgid ""
+"Thus a possible implementation of a 2PC participant’s prepare method may "
+"resemble the following:"
+msgstr ""
+
+#. Tag: screen
+#: The_XTS_API.xml:45
+#, no-c-format
+msgid ""
+"public Vote prepare () throws WrongStateException, SystemException\n"
+"{\n"
+"        // Some participant logic here\n"
+"        \n"
+"        if(/* some condition based on the outcome of the business logic */)\n"
+"        {\n"
+"                // Vote to confirm\n"
+"                return new com.arjuna.wst.Prepared();\n"
+"        }\n"
+"        else if(/*some other condition based on the outcome of the business "
+"logic*/)\n"
+"        {\n"
+"                // Resign\n"
+"                return new com.arjuna.wst.ReadOnly();\n"
+"        }\n"
+"        else\n"
+"        {\n"
+"                // Vote to cancel\n"
+"                return new com.arjuna.wst.Aborted();\n"
+"        }\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:47
+#, no-c-format
+msgid "The transaction context"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:48
+#, no-c-format
+msgid ""
+"A transaction is typically represented by some unique identifier and a "
+"reference to the coordinator which manages the transaction, for example, a "
+"URL. XTS allows transactions to be nested such that a transaction hierarchy "
+"(tree) may be formed. Thus, a transaction context may be a set of "
+"transactions, with the top-most transaction the root parent (superior)."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:53
+#, no-c-format
+msgid "TxContext"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:54
+#, no-c-format
+msgid ""
+"<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a "
+"transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:60
+#, no-c-format
+msgid ""
+"<emphasis>valid</emphasis>: this indicates whether or not the contents are "
+"valid."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:65
+#, no-c-format
+msgid "<emphasis>equals</emphasis>: can be used to compare two instances."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:71
+#, no-c-format
+msgid "UserTransaction"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:72
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserTransaction</classname> is the class that "
+"most users (for example, clients and services) will see. This isolates them "
+"from the underlying protocol-specific aspects of the XTS implementation. "
+"Importantly, a UserTransaction does not represent a specific transaction, "
+"but rather is responsible for providing access to an implicit per-thread "
+"transaction context; it is similar to the UserTransaction in the JTA "
+"specification. Therefore, all of the UserTransaction methods implicitly act "
+"on the current thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:76
+#, no-c-format
+msgid ""
+"A new transaction is begun and associated with the invoking thread by using "
+"the begin method. If there is already a transaction associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created transaction with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:79
+#, no-c-format
+msgid ""
+"The transaction is committed by the commit method. This will execute the "
+"Volatile2PC and Durable2PC protocols prior to returning. If there is no "
+"transaction associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. If the transaction "
+"ultimately rolls back then the <code>TransactionRolledBackException</code> "
+"is thrown. When complete, this operation disassociates the transaction from "
+"the current thread such that it becomes associated with no transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:82
+#, no-c-format
+msgid ""
+"The <code>rollback</code> operation will terminate the transaction and "
+"return normally if it succeeded, while throwing an appropriate exception if "
+"it didn’t. If there is no transaction associated with the invoking thread "
+"then <code>UnknownTransactionException</code> is thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:86
+#, no-c-format
+msgid "UserTransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:87
+#, no-c-format
+msgid ""
+"UserTransactions are obtained from a <code>UserTransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:92
+#, no-c-format
+msgid "TransactionManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:93
+#, no-c-format
+msgid ""
+"The <interfacename>TransactionManager</interfacename> interface represents "
+"the service/container/participant’s (service-side users) typical way in "
+"which to interact with the underlying transaction service implementation. As "
+"with <interfacename>UserTransaction</interfacename> a "
+"<interfacename>TransactionManager</interfacename> does not represent a "
+"specific transaction, but rather is responsible for providing access to an "
+"implicit per-thread transaction context."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:97
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific transaction. In "
+"order to do this it is necessary to disassociate the thread from any "
+"transactions. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the transaction. The "
+"thread is then no longer associated with any transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:100
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with a transaction(s) via its <code>TxContext</code>. Prior to "
+"association, the thread is disassociated with any transaction(s) with which "
+"it may be currently associated. If the <code>TxContext</code> is null, then "
+"the thread is associated with no transaction. The "
+"<code>UnknownTransactionException</code> exception is thrown if the "
+"transaction that the <code>TxContext</code> refers to is invalid in the "
+"scope of the invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:103
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current transaction, or null if there is "
+"none. Unlike suspend, this method does not disassociate the current thread "
+"from the transaction(s). This can be used to enable multiple threads to "
+"execute within the scope of the same transaction."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:106
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a transaction, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:111
+#, no-c-format
+msgid ""
+"<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"Volatile2PC protocol; a unique identifier for the participant is also "
+"required. If there is no transaction associated with the invoking thread "
+"then the <code>UnknownTransactionException</code> exception is thrown. If "
+"the coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:116
+#, no-c-format
+msgid ""
+"<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified "
+"participant with current transaction such that it will participate in the "
+"2PC protocol; a unique identifier for the participant is also required. If "
+"there is no transaction associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the "
+"transaction is not in a state where participants can be enrolled (for "
+"example, it is terminating) then <code>WrongStateException</code> will be "
+"thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:122
+#, no-c-format
+msgid "TransactionFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:123
+#, no-c-format
+msgid ""
+"TransactionManagers are obtained from a <code>TransactionFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:130
+#, no-c-format
+msgid "API for the Business Activity protocol"
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:132
+#, no-c-format
+msgid "UserBusinessActivity"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:133
+#, no-c-format
+msgid ""
+"The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class "
+"that most users (for example, clients and services) will see. This isolates "
+"them from the underlying protocol-specific aspects of the XTS "
+"implementation. Importantly, a <code>UserBusinessActivity</code> does not "
+"represent a specific business activity, but rather is responsible for "
+"providing access to an implicit per-thread activity. Therefore, all of the "
+"<code>UserBusinessActivity</code> methods implicitly act on the current "
+"thread of control."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:137
+#, no-c-format
+msgid ""
+"A new business activity is begun and associated with the invoking thread by "
+"using the begin method. If there is already an activity associated with the "
+"thread then the <code>WrongStateException</code> exception is thrown. Upon "
+"success, this operation associates the newly created activity with the "
+"current thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:140
+#, no-c-format
+msgid ""
+"The business activity is completed successfully by the close method. This "
+"will execute the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol prior to returning. If there is no activity associated with the "
+"invoking thread then <code>UnknownTransactionException</code> is thrown. If "
+"the activity ultimately cancels then the "
+"<code>TransactionRolledBackException</code> is thrown. When complete, this "
+"operation disassociates the business activity from the current thread such "
+"that it becomes associated with no activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:143
+#, no-c-format
+msgid ""
+"The cancel operation will terminate the business activity and return "
+"normally if it succeeded, while throwing an appropriate exception if it "
+"didn’t. If there is no activity associated with the invoking thread then "
+"<code>UnknownTransactionException</code> is thrown. Any participants that "
+"had previously completed will be informed to compensate for their work."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:146
+#, no-c-format
+msgid ""
+"Some participants may have registered for the "
+"<code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which "
+"requires the coordinator or application to inform them when all work that "
+"they need to do within the scope of a business activity has been performed. "
+"The application should therefore use the complete method to inform these "
+"participants."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:150
+#, no-c-format
+msgid "UserBusinessActivityFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:151
+#, no-c-format
+msgid ""
+"UserBusinessActivities are obtained from a "
+"<code>UserBusinessActivityFactory</code>."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:156
+#, no-c-format
+msgid "BusinessActivityManager"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:157
+#, no-c-format
+msgid ""
+"The <interfacename>BusinessActivityManager</interfacename> interface "
+"represents the service/container/participant’s (service-side users) typical "
+"way in which to interact with the underlying business activity service "
+"implementation. As with <interfacename>UserBusinessActivity</interfacename> "
+"a <interfacename>BusinessActivityManager</interfacename> does not represent "
+"a specific activity, but rather is responsible for providing access to an "
+"implicit per-thread activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:161
+#, no-c-format
+msgid ""
+"A thread of control may require periods of non-transactionality so that it "
+"may perform work that is not associated with a specific activity. In order "
+"to do this it is necessary to disassociate the thread from any business "
+"activities. The suspend method accomplishes this, returning a "
+"<code>TxContext</code> instance, which is a handle on the activity. The "
+"thread is then no longer associated with any activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:164
+#, no-c-format
+msgid ""
+"The <methodname>resume</methodname> method can be used to (re-)associate a "
+"thread with an activity (or activities) via its TxContext. Prior to "
+"association, the thread is disassociated with any activity with which it may "
+"be currently associated. If the <code>TxContext</code> is null, then the "
+"thread is associated with no activity. The "
+"<code>UnknownTransactionException</code> exception is thrown if the business "
+"activity that the TxContext refers to is invalid in the scope of the "
+"invoking thread."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:167
+#, no-c-format
+msgid ""
+"The <methodname>currentTransaction</methodname> method returns the "
+"<code>TxContext</code> for the current business activity, or null if there "
+"is none. Unlike suspend, this method does not disassociate the current "
+"thread from the activity. This can be used to enable multiple threads to "
+"execute within the scope of the same business activity."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:170
+#, no-c-format
+msgid ""
+"In order to register and resign participants with a business activity, the "
+"container or participant must use:"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:175
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: "
+"enlist the specified participant with current business activity such that it "
+"will participate in the <code>BusinessAgreementWithParticipantCompletion</"
+"code> protocol; a unique identifier for the participant is also required. If "
+"there is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:180
+#, no-c-format
+msgid ""
+"<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: "
+"enlist the specified participant with current activity such that it will "
+"participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> "
+"protocol; a unique identifier for the participant is also required. If there "
+"is no business activity associated with the invoking thread then the "
+"<code>UnknownTransactionException</code> exception is thrown. If the "
+"coordinator already has a participant enrolled with the same identifier, "
+"then <code>AlreadyRegisteredException</code> will be thrown. If the activity "
+"is not in a state where participants can be enrolled (for example, it is "
+"terminating) then <code>WrongStateException</code> will be thrown."
+msgstr ""
+
+#. Tag: title
+#: The_XTS_API.xml:186
+#, no-c-format
+msgid "BusinessActivityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: The_XTS_API.xml:187
+#, no-c-format
+msgid ""
+"BusinessActivityManagers are obtained from a "
+"<code>BusinessActivityManagerFactory</code>."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactional_Web_Services.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactional_Web_Services.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactional_Web_Services.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,106 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactional_Web_Services.xml:6
+#, no-c-format
+msgid "Transactional Web Services"
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:9
+#, no-c-format
+msgid ""
+"This chapter describes how to provide transactional support for new and "
+"existing Web services using the service-side facilities of XTS. It shows how "
+"new services can be made transactional with no additional programming, and "
+"how existing services can be made WS-T transaction-aware in a non-invasive "
+"fashion."
+msgstr ""
+
+#. Tag: title
+#: Transactional_Web_Services.xml:15
+#, no-c-format
+msgid "A Transactional Web Service"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:16
+#, no-c-format
+msgid ""
+"A Web service is a business-level entity. It encapsulates application logic "
+"needed to perform some domain-specific task, or is designed to delegate to a "
+"back-end system which executes that logic. Given it is part of application "
+"code, such non-functional requirements as transactionality should not "
+"impinge on its construction."
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:19
+#, no-c-format
+msgid ""
+"To support this notion, XTS provides a suite of components designed to work "
+"at the SOAP stack level, which deal with transactional matters on behalf of "
+"a Web service without requiring any changes to that service. In XTS two "
+"context handling components are registered with the SOAP server and deal "
+"with context management on behalf of the service without the service having "
+"to worry about context propagation issues itself. This is shown in the "
+"following figure."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:26
+#, no-c-format
+msgid "Context Handlers Registered with the SOAP Server"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:28
+#, no-c-format
+msgid ""
+"The detail of the context management that the context processor performs is "
+"unimportant to the Web service application logic, and is orthogonal to any "
+"work performed by any other protocol-specific context handlers too. However "
+"back-end systems which the Web service application logic uses (such as "
+"databases) are often interested in the front-end transaction context such "
+"that any operations invoked within its scope can be mapped onto a back-end "
+"transaction context. This is typically achieved at the back-end by wrapping "
+"a database driver in a veneer which implements both the interface of the "
+"original driver and hooks into the service-side API to access the "
+"transaction context details. The general architecture for this pattern is "
+"shown in the figure below."
+msgstr ""
+
+#. Tag: caption
+#: Transactional_Web_Services.xml:35
+#, no-c-format
+msgid "General Pattern for Back-End Integration, Service Side"
+msgstr ""
+
+#. Tag: para
+#: Transactional_Web_Services.xml:37
+#, no-c-format
+msgid ""
+"The missing element from this is the commit protocol which finally allows "
+"back-end work to be made durable or not at the end of a transaction. This is "
+"covered in the participant chapter where the participant/back-end relation "
+"is explored further."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactions_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactions_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactions_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,654 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Transactions_Overview.xml:6
+#, no-c-format
+msgid "Transactions Overview"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:7
+#, no-c-format
+msgid ""
+"Transactions have emerged as the dominant paradigm for coordinating "
+"interactions between parties in a distributed system, and in particular to "
+"manage applications that require concurrent access to shared data. Much of "
+"the JBossTS Web Service API is based on contemporary transaction APIs whose "
+"familiarity will enhance developer productivity and lessen the learning "
+"curve. While the following section provides the essential information that "
+"you should know before starting to use XTS for building transactional Web "
+"Services, it should not be treated as a definitive reference to all "
+"transactional technology."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:10
+#, no-c-format
+msgid ""
+"A classic transaction is a unit of work that either completely succeeds, or "
+"fails with all partially completed work being undone. When a transaction is "
+"committed, all changes made by the associated requests are made durable, "
+"normally by committing the results of the work to a database. If a "
+"transaction should fail and is rolled back, all changes made by the "
+"associated work are undone. Transactions in distributed systems typically "
+"require the use of a transaction manager that is responsible for "
+"coordinating all of the participants that are part of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:13
+#, no-c-format
+msgid ""
+"The main components involved in using and defining transactional Web "
+"Services using XTS are illustrated in Figure 1."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:18
+#, no-c-format
+msgid ""
+"A Transaction Service: The Transaction Service captures the model of the "
+"underlying transaction protocol and coordinates parties affiliated with the "
+"transaction according to that model."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:23
+#, no-c-format
+msgid ""
+"A Transaction API: Provides an interface for transaction demarcation and the "
+"registration of participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:28
+#, no-c-format
+msgid ""
+"A Participant: The entity that cooperates with the transaction service on "
+"behalf of its associated business logic."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:33
+#, no-c-format
+msgid ""
+"The Context: Captures the necessary details of the transaction such that "
+"participants can enlist within its scope."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:42
+#, no-c-format
+msgid "Web Services and XTS"
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:45
+#, no-c-format
+msgid "The Coordinator"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:46
+#, no-c-format
+msgid ""
+"Associated with every transaction is a coordinator, which is responsible for "
+"governing the outcome of the transaction. The coordinator may be implemented "
+"as a separate service or may be co-located with the user for improved "
+"performance. Each coordinator is created by the transaction manager service, "
+"which is in effect a factory for those coordinators."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:50
+#, no-c-format
+msgid ""
+"A coordinator communicates with enrolled participants to inform them of the "
+"desired termination requirements, for instance, whether they should accept "
+"(for example, confirm) or reject (for example, cancel) the work done within "
+"the scope of the given transaction. For example, whether to purchase the "
+"(provisionally reserved) flight tickets for the user or to release them. An "
+"application/client may wish to terminate a transaction in a number of "
+"different ways (for example, confirm or cancel). However, although the "
+"coordinator will attempt to terminate in a manner consistent with that "
+"desired by the client, it is ultimately the interactions between the "
+"coordinator and the participants that will determine the actual final "
+"outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:53
+#, no-c-format
+msgid ""
+"A transaction manager is typically responsible for managing coordinators for "
+"many transactions. The initiator of the transaction (for example, the "
+"client) communicates with a transaction manager and asks it to start a new "
+"transaction and associate a coordinator with the transaction. Once created, "
+"the context can be propagated to Web services in order for them to associate "
+"their work with the transaction."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:57
+#, no-c-format
+msgid "The Transaction Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:58
+#, no-c-format
+msgid ""
+"In order for a transaction to span a number of services, certain information "
+"has to be shared between those services in order to propagate information "
+"about the transaction. This information is known as the Context. Using XTS, "
+"the context is automatically propagated and processed by transaction-aware "
+"components of an application. Though XTS removes most of the work associated "
+"with propagating contexts, it is still instructive to understand what "
+"information is captured in a context:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:64
+#, no-c-format
+msgid ""
+"A transaction identifier which guarantees global uniqueness for an "
+"individual transaction;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:69
+#, no-c-format
+msgid ""
+"The transaction coordinator location or endpoint address so participants can "
+"be enrolled."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:78
+#, no-c-format
+msgid "Web Services and Context Flow"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:80
+#, no-c-format
+msgid ""
+"As shown in Figure 2, whenever an application message is sent, the XTS "
+"Client API automatically creates a context and embeds it into the message. "
+"Similarly, any transaction-aware services are able to extract that context "
+"using the XTS service-side infrastructure and use it to perform work within "
+"the context of a particular transaction – even though that transaction was "
+"initiated elsewhere on the Web! The value of this approach is that the "
+"business logic contained within the client application and services are not "
+"peppered with transaction-processing code."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:84
+#, no-c-format
+msgid "ACID Transactions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:85
+#, no-c-format
+msgid ""
+"Traditionally, transaction processing systems support ACID properties. ACID "
+"is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work "
+"has traditionally been considered transactional only if the ACID properties "
+"are maintained:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:91
+#, no-c-format
+msgid "Atomicity: The transaction executes completely or not at all."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:96
+#, no-c-format
+msgid ""
+"Consistency: The effects of the transaction preserve the internal "
+"consistency of an underlying data structure."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:101
+#, no-c-format
+msgid ""
+"Isolated: The transaction runs as if it were running alone with no other "
+"transactions running and is not visible to other transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:106
+#, no-c-format
+msgid ""
+"Durable: the transaction’s results will not be lost in the event of a "
+"failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:112
+#, no-c-format
+msgid "Two-Phase Commit"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:113
+#, no-c-format
+msgid ""
+"The classical two-phase commit approach is the bedrock of JBossTS (and more "
+"generally of Web Services transactions). Two-phase commit provides "
+"coordination of parties that are involved in a transaction. In general, the "
+"flow of a two-phase commit transaction is as follows:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:119
+#, no-c-format
+msgid "A transaction is started, and some work is performed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:124
+#, no-c-format
+msgid "Once the work is finished, the two-phase commit begins."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:129
+#, no-c-format
+msgid ""
+"The coordinator (transaction manager) of the transaction asks each resource "
+"taking part in the transaction whether it is prepared to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:134
+#, no-c-format
+msgid ""
+"If all resources respond positively, the coordinator instructs all work "
+"performed to be made durable (usually committed to a database)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:139
+#, no-c-format
+msgid ""
+"If not, all work performed is rolled back (undone) such that the underlying "
+"data structures are in their original states."
+msgstr ""
+
+#. Tag: caption
+#: Transactions_Overview.xml:148
+#, no-c-format
+msgid "The Two-Phase Commit Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:151
+#, no-c-format
+msgid ""
+"During two-phase commit transactions, coordinators and resources keep track "
+"of activity in non-volatile data stores so that they can recover in the case "
+"of a failure."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:156
+#, no-c-format
+msgid "The synchronization protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:157
+#, no-c-format
+msgid ""
+"As well as the two-phase commit protocol, traditional transaction processing "
+"systems employ an additional protocol, often referred to as the "
+"synchronization protocol. If you recall the original ACID properties, then "
+"you’ll remember that Durability is important in the case where state changes "
+"have to be available despite failures. What this means is that applications "
+"interact with a persistence store of some kind (e.g., a database) and this "
+"can impose a significant overhead – disk access is orders of magnitude "
+"slower than access to main computer memory."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:161
+#, no-c-format
+msgid ""
+"One apparently obvious solution to this problem would be to cache the state "
+"in main memory and only operate on that for the duration of a transaction. "
+"Unfortunately you’d then need some way of being able to flush the state back "
+"to the persistent store before the transaction terminates, or risk losing "
+"the full ACID properties. This is what the synchronization protocol does, "
+"with Synchronization participants."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:164
+#, no-c-format
+msgid ""
+"Synchronizations are informed that a transaction is about to commit, so they "
+"can, for example, flush cached state, which may be being used to improve "
+"performance of an application, to a durable representation prior to the "
+"transaction committing. They are then informed when the transaction has "
+"completed and in what state it completed."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:169
+#, no-c-format
+msgid ""
+"Synchronizations essentially turn the two-phase commit protocol into a four-"
+"phase protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:174
+#, no-c-format
+msgid ""
+"Before the transaction starts the two-phase commit, all registered "
+"Synchronizations are informed. Any failure at this point will cause the "
+"transaction to roll back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:179
+#, no-c-format
+msgid "The coordinator then conducts the normal two-phase commit protocol."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:184
+#, no-c-format
+msgid ""
+"Once the transaction has terminated, all registered Synchronizations are "
+"informed. However, this is a courtesy invocation because any failures at "
+"this stage are ignored: the transaction has terminated so there’s nothing to "
+"affect."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:189
+#, no-c-format
+msgid ""
+"Unlike the two-phase commit protocol, the synchronization protocol does not "
+"have the same failure requirements. For example, Synchronization "
+"participants don’t need to make sure they can recover in the event of "
+"failures; this is because any failure before the two-phase commit protocol "
+"completes means the transaction will roll back, and failures after it has "
+"completed can’t affect the data the Synchronization participants were "
+"managing."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:193
+#, no-c-format
+msgid "Optimizations to the protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:194
+#, no-c-format
+msgid ""
+"There are several variants to the standard two-phase commit protocol that "
+"are worth knowing about because they can have an impact on performance and "
+"failure recovery. We shall briefly describe those that are the most common "
+"variants on the protocol:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:200
+#, no-c-format
+msgid ""
+"Presumed abort: if a transaction is going to roll back then it may simply "
+"record this information locally and tell all enlisted participants. Failure "
+"to contact a participant has no affect on the transaction outcome; the "
+"transaction is effectively informing participants as a courtesy. Once all "
+"participants have been contacted the information about the transaction can "
+"be removed. If a subsequent request for the status of the transaction occurs "
+"there will be no information available and the requestor can assume that the "
+"transaction has aborted (rolled back). This optimization has the benefit "
+"that no information about participants need be made persistent until the "
+"transaction has decided to commit (i.e., progressed to the end of the "
+"prepare phase), since any failure prior to this point will be assumed to be "
+"an abort of the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:205
+#, no-c-format
+msgid ""
+"One-phase: if there is only a single participant involved in the "
+"transaction, the coordinator need not drive it through the prepare phase. "
+"Thus, the participant will simply be told to commit and the coordinator need "
+"not record information about the decision since the outcome of the "
+"transaction is solely down to the participant."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:210
+#, no-c-format
+msgid ""
+"Read-only: when a participant is asked to prepare, it can indicate to the "
+"coordinator that no information or data that it controls has been modified "
+"during the transaction. Such a participant does not need to be informed "
+"about the outcome of the transaction since the fate of the participant has "
+"no affect on the transaction. As such, a read-only participant can be "
+"omitted from the second phase of the commit protocol."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:216
+#, no-c-format
+msgid "Non-atomic transactions and heuristic outcomes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:217
+#, no-c-format
+msgid ""
+"In order to guarantee atomicity, the two-phase commit protocol is "
+"necessarily blocking. What this means is that as a result of failures, "
+"participants may remain blocked for an indefinite period of time even if "
+"failure recovery mechanisms exist. Some applications and participants simply "
+"cannot tolerate this blocking."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:221
+#, no-c-format
+msgid ""
+"To break this blocking nature, participants that have got past the prepare "
+"phase are allowed to make autonomous decisions as to whether they commit or "
+"rollback: such a participant must record this decision in case it is "
+"eventually contacted to complete the original transaction. If the "
+"coordinator eventually informs the participant of the transaction outcome "
+"and it is the same as the choice the participant made, then there’s no "
+"problem. However, if it is contrary, then a non-atomic outcome has obviously "
+"happened: a heuristic outcome."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:224
+#, no-c-format
+msgid ""
+"How this heuristic outcome is reported to the application and resolved is "
+"usually the domain of complex, manually driven system administration tools, "
+"since in order to attempt an automatic resolution requires semantic "
+"information about the nature of participants involved in the transactions."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:227
+#, no-c-format
+msgid ""
+"Precisely when a participant makes a heuristic decision is obviously "
+"implementation dependant. Likewise, the choice the participant makes (to "
+"commit or to roll back) will depend upon the implementation and possibly the "
+"application/environment in which it finds itself. The possible heuristic "
+"outcomes are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:232
+#, no-c-format
+msgid ""
+"Heuristic rollback: the commit operation failed because some or all of the "
+"participants unilaterally rolled back the transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:237
+#, no-c-format
+msgid ""
+"Heuristic commit: an attempted rollback operation failed because all of the "
+"participants unilaterally committed. This may happen if, for example, the "
+"coordinator was able to successfully prepare the transaction but then "
+"decided to roll it back (for example, it could not update its log) but in "
+"the meanwhile the participants decided to commit."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:242
+#, no-c-format
+msgid ""
+"Heuristic mixed: some updates (participants) were committed while others "
+"were rolled back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:247
+#, no-c-format
+msgid ""
+"Heuristic hazard: the disposition of some of the updates is unknown. For "
+"those which are known, they have either all been committed or all rolled "
+"back."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:252
+#, no-c-format
+msgid ""
+"Heuristic decisions should be used with care and only in exceptional "
+"circumstances since there is the possibility that the decision will differ "
+"from that determined by the transaction service and will thus lead to a loss "
+"of integrity in the system. Having to perform resolution of heuristics is "
+"something you should try to avoid, either by working with services/"
+"participants that don’t cause heuristics, or by using a transaction service "
+"that provides assistance in the resolution process."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:256
+#, no-c-format
+msgid "A New Transaction Protocol"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:257
+#, no-c-format
+msgid ""
+"Many component technologies offer mechanisms for coordinating ACID "
+"transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, "
+"MTS/MSDTC). ACID transactions are not suitable for all Web services "
+"transactions since:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:263
+#, no-c-format
+msgid ""
+"Classic ACID transactions are predicated on the idea that an organization "
+"that develops and deploys applications does so using their own "
+"infrastructure, typically an Intranet. Ownership meant transactions operated "
+"in a trusted and predictable manner. To assure ACIDity, potentially long-"
+"lived locks could be kept on underlying data structures during two-phase "
+"commit. Resources could be used for any period of time and released when the "
+"transaction was complete. In the Web services arena, these assumptions are "
+"no longer valid. One obvious reason is that the owners of data exposed "
+"through a Web service will refuse to allow their data to be locked for "
+"extended periods since to allow such locks invites denial-of-service."
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:268
+#, no-c-format
+msgid ""
+"All application infrastructures are generally owned by a single party, "
+"systems using classical ACID transactions normally assume that participants "
+"in a transaction will obey the will of the transaction manager and only "
+"infrequently decide to make unilateral decisions which will hamper other "
+"participants in a transaction. On the contrary, Web services participating "
+"in a transaction can effectively decide to resign from the transaction at "
+"any time, and the consumer of the service generally has little in the way of "
+"quality of service guarantees to prevent this."
+msgstr ""
+
+#. Tag: title
+#: Transactions_Overview.xml:274
+#, no-c-format
+msgid "Adressing the Problems of Transactioning in Loosely Coupled Systems"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:275
+#, no-c-format
+msgid ""
+"Though extended transaction models which relax the ACID properties have been "
+"proposed over the years, to implement these concepts for the Web services "
+"architecture WS-T provides a new transaction protocol. XTS is designed to "
+"accommodate four underlying requirements inherent in any loosely coupled "
+"architecture like Web services:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:281
+#, no-c-format
+msgid ""
+"Ability to handle multiple successful outcomes to a transaction, with the "
+"ability to involve operations whose effects may not be isolated or durable;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:286
+#, no-c-format
+msgid ""
+"Coordination of autonomous parties whose relationships are governed by "
+"contracts rather than the dictates of a central design authority;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:291
+#, no-c-format
+msgid ""
+"Discontinuous service, where parties are anticipated to suffer outages "
+"during their lifetime, and coordinated work must be able to survive such "
+"outages;"
+msgstr ""
+
+#. Tag: para
+#: Transactions_Overview.xml:296
+#, no-c-format
+msgid ""
+"Interoperation using XML over multiple communication protocols – XTS chooses "
+"to use SOAP encoding carried over HTTP for the first release and other SOAP-"
+"friendly transports for future releases."
+msgstr ""

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/Transactions_Web_Services_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po
===================================================================
--- labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	                        (rev 0)
+++ labs/jbosstm/enterprise/tags/EAP_4_3_0/Transactions_Web_Services_Programmers_Guide/zh-CN/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,950 @@
+# Language zh-CN translations for  package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version:  \n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-09-23 06:34+0000\n"
+"PO-Revision-Date: 2008-09-23 06:34+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:6
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Overview"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:8
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:9
+#, no-c-format
+msgid ""
+"This section provides fundamental concepts associated with WS-C, WS-Atomic "
+"Transaction and WS-Business Activity. All of these concepts are defined in "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-"
+"C, WS-Atomic Transaction and WS-Business Activity principles are discussed "
+"throughout this guide."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:13
+#, no-c-format
+msgid ""
+"If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business "
+"Activity specifications then you may want to just skim through this part of "
+"the manual."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:20
+#, no-c-format
+msgid "WS-Coordination"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:21
+#, no-c-format
+msgid ""
+"In general terms, coordination is the act of one entity (known as the "
+"coordinator) disseminating information to a number of participants for some "
+"domain-specific reason. This reason could be in order to reach consensus on "
+"a decision like in a distributed transaction protocol, or simply to "
+"guarantee that all participants obtain a specific message, as occurs in a "
+"reliable multicast environment. When parties are being coordinated, "
+"information known as the coordination context is propagated to tie together "
+"operations which are logically part of the same coordinated work or "
+"activity. This context information may flow with normal application "
+"messages, or may be an explicit part of a message exchange and is specific "
+"to the type of coordination being performed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:24
+#, no-c-format
+msgid ""
+"The fundamental idea underpinning WS-Coordination is that there is a generic "
+"need for a coordination infrastructure in a Web services environment. The WS-"
+"Coordination specification defines a framework that allows different "
+"coordination protocols to be plugged-in to coordinate work between clients, "
+"services and participants, as shown in Figure 4."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:27
+#, no-c-format
+msgid ""
+"At this level, an activity is minimally specified and is simply created, "
+"made to run, and then completed."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:34
+#, no-c-format
+msgid "WS-C architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:36
+#, no-c-format
+msgid ""
+"Whatever coordination protocol is used, and in whatever domain it is "
+"deployed, the same generic requirements are present:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:41
+#, no-c-format
+msgid ""
+"Instantiation (or activation) of a new coordinator for the specific "
+"coordination protocol, for a particular application instance;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:46
+#, no-c-format
+msgid ""
+"Registration of participants with the coordinator, such that they will "
+"receive that coordinator’s protocol messages during (some part of) the "
+"application’s lifetime;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:51
+#, no-c-format
+msgid ""
+"Propagation of contextual information between Web services that comprise the "
+"application;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:56
+#, no-c-format
+msgid "An entity to drive the coordination protocol through to completion."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:61
+#, no-c-format
+msgid ""
+"The first three of these points are directly the concern of WS-Coordination "
+"while the fourth is the responsibility of a third-party entity, usually the "
+"client application that controls the application as a whole. These four WS-"
+"Coordination roles and their interrelationships are shown in Figure 5."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:68
+#, no-c-format
+msgid "WS-C infrastructure"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:71
+#, no-c-format
+msgid "Activation"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:72
+#, no-c-format
+msgid ""
+"The WS-Coordination framework exposes an Activation Service which supports "
+"the creation of coordinators for specific protocols and their associated "
+"contexts. The process of invoking an activation service is done "
+"asynchronously, and so the specification defines both the interface of the "
+"activation service itself, and that of the invoking service, so that the "
+"activation service can call back to deliver the results of the activation – "
+"namely a context that identifies the protocol type and coordinator location. "
+"These interfaces are presented in Figure 6, where the activation service has "
+"a one-way operation that expects to receive a "
+"<code>CreateCoordinationContext</code> message and correspondingly the "
+"service that sent the <code>CreateCoordinationContext</code> message expects "
+"to be called back with a <code>CreateCoordinationContextResponse</code> "
+"message, or informed of a problem via an <code>Error</code> message."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:76
+#, no-c-format
+msgid ""
+"&lt;!-- Activation Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"CreateCoordinationContext\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContext\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Activation Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"ActivationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation \n"
+"                name=\"CreateCoordinationContextResponse\"&gt;\n"
+"                &lt;wsdl:input \n"
+"                message=\"wscoor:CreateCoordinationContextResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\\"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:78
+#, no-c-format
+msgid "Registration"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:79
+#, no-c-format
+msgid ""
+"Once a coordinator has been instantiated and a corresponding context created "
+"by the activation service, a Registration Service is created and exposed. "
+"This service allows participants to register to receive protocol messages "
+"associated with a particular coordinator. Like the activation service, the "
+"registration service assumes asynchronous communication and so specifies "
+"WSDL for both registration service and registration requester, as shown "
+"below."
+msgstr ""
+
+#. Tag: screen
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:83
+#, no-c-format
+msgid ""
+"&lt;!-- Registration Service portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationCoordinatorPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"Register\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Register\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;\n"
+"        \n"
+"&lt;!-- Registration Requester portType Declaration --&gt;\n"
+"&lt;wsdl:portType name=\"RegistrationRequesterPortType\"&gt;\n"
+"        &lt;wsdl:operation name=\"RegisterResponse\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:RegisterResponse\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"        &lt;wsdl:operation name=\"Error\"&gt;\n"
+"                &lt;wsdl:input message=\"wscoor:Error\"/&gt;\n"
+"        &lt;/wsdl:operation&gt;\n"
+"&lt;/wsdl:portType&gt;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:84
+#, no-c-format
+msgid ""
+"When a participant is registered with a coordinator through the registration "
+"service, it receives messages that the coordinator sends (for example, "
+"“prepare to complete” and “complete” messages if a two-phase protocol is "
+"used); where the coordinator’s protocol supports it, participants can also "
+"send messages back to the coordinator."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:88
+#, no-c-format
+msgid "Completion"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:89
+#, no-c-format
+msgid ""
+"The role of terminator is generally played by the client application, which "
+"at an appropriate point will ask the coordinator to perform its particular "
+"coordination function with any registered participants – to drive the "
+"protocol through to its completion. On completion, the client application "
+"may be informed of an outcome for the activity which may vary from simple "
+"succeeded/failed notification through to complex structured data detailing "
+"the activity’s status."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:96
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:97
+#, no-c-format
+msgid ""
+"In the past, making traditional transaction systems talk to one another was "
+"a holy grail that was rarely achieved. With the advent of Web services, "
+"there is an opportunity to leverage an unparalleled interoperability "
+"technology to splice together existing transaction processing systems that "
+"already form the backbone of enterprise level applications."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:101
+#, no-c-format
+msgid "WS-Coordination Foundations"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:102
+#, no-c-format
+msgid ""
+"An important aspect of WS-Transaction that differentiates it from "
+"traditional transaction protocols is that a synchronous request/response "
+"model is not assumed. This model derives from the fact that WS-Transaction "
+"is, as shown in the figure below, layered upon the WS-Coordination protocol "
+"whose own communication patterns are asynchronous by default."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:110
+#, no-c-format
+msgid "WS-Coordination WS-Atomic Transaction and WS-Business Activity"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:112
+#, no-c-format
+msgid ""
+"Web Services Coordination provides a generic framework for specific "
+"coordination protocols, like WS-Transaction, to be plugged in. Recall that "
+"WS-Coordination provides only context management – it allows contexts to be "
+"created and activities to be registered with those contexts. WS-Transaction "
+"leverages the context management framework provided by WS-Coordination in "
+"two ways. Firstly it extends the WS-Coordination context to create a "
+"transaction context. Secondly, it augments the activation and registration "
+"services with a number of additional services (Completion, "
+"CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, "
+"and BusinessAgreementWithComplete) and two protocol message sets (one for "
+"each of the transaction models supported in WS-Transaction) to build a fully-"
+"fledged transaction coordinator on top the WS-Coordination protocol "
+"infrastructure."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:116
+#, no-c-format
+msgid "WS-Transaction Architecture"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:117
+#, no-c-format
+msgid ""
+"WS-Transaction supports the notion of the service and participant as "
+"distinct roles, making the distinction between a transaction-aware service "
+"and the participants that act on behalf of the service during a transaction: "
+"transactional services deal with business-level protocols, while the "
+"participants handle the underlying WS-Transaction protocols, as shown above."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:125
+#, no-c-format
+msgid "WS-Transaction Global View"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:127
+#, no-c-format
+msgid ""
+"A transaction-aware service encapsulates the business logic or work that is "
+"required to be conducted within the scope of a transaction. This work cannot "
+"be confirmed by the application unless the transaction also commits and so "
+"control is ultimately removed from the application and placed into the "
+"transaction’s domain."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:130
+#, no-c-format
+msgid ""
+"The participant is the entity that, under the dictates of the transaction "
+"coordinator, controls the outcome of the work performed by the transaction-"
+"aware Web service. In the figure above each service is shown with one "
+"associated participant that manages the transaction protocol messages on "
+"behalf of its service, while in the figure below, there is a close-up view "
+"of a single service, and a client application with their associated "
+"participants."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:137
+#, no-c-format
+msgid "Transactional Service and Participant"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:139
+#, no-c-format
+msgid ""
+"The transaction-aware Web service and its participant both serve a shared "
+"transactional resource, and there is a control relationship between them "
+"through some API - which on the Java platform is JAXTX. In the example shown "
+"in the figure above, it is assumed that the database is accessed through a "
+"transactional JDBC database driver, where SQL statements are sent to the "
+"database for processing via that driver, but where those statements will be "
+"tentative and only commit if the transaction does. In order to do this, the "
+"driver/database will associate a participant with the transaction which will "
+"inform the database of the transaction outcome. Since all transactional "
+"invocations on the Web service carry a transaction context, the participant "
+"working with the database is able to identify the work that the "
+"transactional service did within the scope of a specific transaction and "
+"either commit or rollback the work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:142
+#, no-c-format
+msgid ""
+"At the client end, things are less complex. Through its API, the client "
+"application registers a participant with the transaction through which it "
+"controls transaction termination."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:146
+#, no-c-format
+msgid "WS-Transaction Models"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:147
+#, no-c-format
+msgid ""
+"Given that traditional transaction models are not appropriate for Web "
+"services, the following question must be posed, “what type of model or "
+"protocol is appropriate?” The answer to that question is that that no one "
+"specific protocol is likely to be sufficient, given the wide range of "
+"situations that Web service transactions are likely to be deployed within. "
+"Hence the WS-Transaction specification proposes two distinct models, where "
+"each supports the semantics of a particular kind of B2B interaction. The "
+"following sections shall discuss these two WS-Transaction models."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:152
+#, no-c-format
+msgid ""
+"As with WS-Coordination, the two WS-Transaction models are extensible "
+"allowing implementations to tailor the protocols as they see fit (for "
+"example, to suit their deployment environments)."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:157
+#, no-c-format
+msgid "Atomic Transactions (AT)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:158
+#, no-c-format
+msgid ""
+"An atomic transaction or AT is similar to traditional ACID transactions and "
+"intended to support short-duration interactions where ACID semantics are "
+"appropriate. Within the scope of an AT, services typically enroll "
+"transaction-aware resources, such as databases and message queues, "
+"indirectly as participants under the control of the transaction. When the "
+"transaction terminates, the outcome decision of the AT is then propagated to "
+"each enlisted resource via the participant, and the appropriate commit or "
+"rollback actions are taken by each."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:162
+#, no-c-format
+msgid ""
+"This protocol is very similar to those employed by traditional transaction "
+"systems that already form the backbone of an enterprise. It is assumed that "
+"all services (and associated participants) provide ACID semantics and that "
+"any use of atomic transactions occurs in environments and situations where "
+"this is appropriate: in a trusted domain, over short durations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:165
+#, no-c-format
+msgid ""
+"To begin an atomic transaction, the client application firstly locates a WS-"
+"Coordination coordinator Web service that supports WS-Transaction. Once "
+"located, the client sends a WS-Coordination CreateCoordinationContext "
+"message to the activation service specifying http://schemas.xmlsoap.org/"
+"ws/2004/10/wsat as its coordination type and will get back an appropriate WS-"
+"Transaction context from the activation service. The response to the "
+"CreateCoordinationContext message, the transaction context, has its "
+"CoordinationType element set to the WS-Atomic Transaction namespace, http://"
+"schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the "
+"atomic transaction coordinator endpoint (the WS-Coordination registration "
+"service) where participants can be enlisted."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:168
+#, no-c-format
+msgid ""
+"After obtaining a transaction context from the coordinator, the client "
+"application then proceeds to interact with Web services to accomplish its "
+"business-level work. With each invocation on a business Web service, the "
+"client inserts the transaction context into a SOAP header block, such that "
+"each invocation is implicitly scoped by the transaction – the toolkits that "
+"support WS-Atomic Transaction-aware Web services provide facilities to "
+"correlate contexts found in SOAP header blocks with back-end operations."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:171
+#, no-c-format
+msgid ""
+"Once all the necessary application level work has been completed, the client "
+"can terminate the transaction, with the intent of making any changes to the "
+"service state permanent. To do this, the client application first registers "
+"its own participant for the Completion protocol. Once registered, the "
+"participant can instruct the coordinator either to try to commit or rollback "
+"the transaction. When the commit or rollback operation has completed, a "
+"status is returned to the participant to indicate the outcome of the "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:174
+#, no-c-format
+msgid ""
+"While the completion protocol is straightforward, they hide the fact that in "
+"order to resolve to an outcome that several other protocols need to be "
+"executed."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:177
+#, no-c-format
+msgid ""
+"The first of these protocols is the optional Volatile2PC. The Volatile2PC "
+"protocol is the WS-Atomic Transaction equivalent of the synchronization "
+"protocol we discussed earlier. It is typically executed where a Web service "
+"needs to flush volatile (cached) state, which may be being used to improve "
+"performance of an application, to a database prior to the transaction "
+"committing. Once flushed, the data will then be controlled by a two-phase "
+"aware participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:180
+#, no-c-format
+msgid ""
+"All Volatile2PC participants are told that the transaction is about to "
+"complete (via the prepare message) and they can respond with either the "
+"prepared, aborted or readonly message; any failures at this stage will cause "
+"the transaction to rollback."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:183
+#, no-c-format
+msgid ""
+"After Volatile2PC prepare, the next protocol to execute in WS-Atomic "
+"Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-"
+"phase commit) protocol is at the very heart of WS-Atomic Transaction and is "
+"used to bring about the necessary consensus between participants in a "
+"transaction such that the transaction can safely be terminated."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:186
+#, no-c-format
+msgid ""
+"The two-phase commit protocol is used to ensure atomicity between "
+"participants, and is based on the classic two-phase commit with presumed "
+"abort technique. During the first phase, when the coordinator sends the "
+"prepare message, a participant must make durable any state changes that "
+"occurred during the scope of the transaction, such that these changes can "
+"either be rolled back or committed later. That is, any original state must "
+"not be lost at this point as the atomic transaction could still roll back. "
+"If the participant cannot prepare then it must inform the coordinator (via "
+"the aborted message) and the transaction will ultimately roll back. If the "
+"participant is responsible for a service that did not do any work during the "
+"course of the transaction, or at least did not do any work that modified any "
+"state, it can return the readonly message and it will be omitted from the "
+"second phase of the commit protocol. Otherwise, the prepared message is sent "
+"by the participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:189
+#, no-c-format
+msgid ""
+"Assuming no failures occurred during the first phase, in the second phase "
+"the coordinator sends the commit message to participants, who will make "
+"permanent the tentative work done by their associated services."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:192
+#, no-c-format
+msgid ""
+"If a transaction involves only a single participant, WS-Atomic Transaction "
+"supports a one-phase commit optimization. Since there is only one "
+"participant, its decisions implicitly reach consensus, and so the "
+"coordinator need not drive the transaction through both phases. In the "
+"optimized case, the participant will simply be told to commit and the "
+"transaction coordinator need not record information about the decision since "
+"the outcome of the transaction is solely down to that single participant."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:195
+#, no-c-format
+msgid ""
+"The figure below<footnote> <para> Redrawn from the WS-Atomic Transaction "
+"specification. </para> </footnote> shows the state transitions of a WS-"
+"Atomic Transaction and the message exchanges between coordinator and "
+"participant; the coordinator generated messages are shown in the solid line, "
+"whereas the participant messages are shown by dashed lines."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:206
+#, no-c-format
+msgid "Two-Phase Commit State Transitions"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:208
+#, no-c-format
+msgid ""
+"Once the 2PC protocol has finished, the Completion protocol that originally "
+"began the termination of the transaction can complete, and inform the client "
+"application whether the transaction was committed or rolled back. "
+"Additionally, the Volatile2PC protocol may complete."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:211
+#, no-c-format
+msgid ""
+"Like the prepare phase of Volatile2PC, the final phase is optional and can "
+"be used to inform participants when the transaction has completed, typically "
+"so that they can release resources (for example, put a database connection "
+"back into the pool of connections)."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:214
+#, no-c-format
+msgid ""
+"Any registered Volatile2PC participants are invoked after the transaction "
+"has terminated and are told the state in which the transaction completed "
+"(the coordinator sends either the Committed or Aborted message). Since the "
+"transaction has terminated, any failures of participants at this stage are "
+"ignored –it is essentially a courtesy, and has no bearing on the outcome of "
+"the transaction."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:217
+#, no-c-format
+msgid ""
+"Finally, after having gone through each of the stages in an AT, it is "
+"possible to see the intricate interweaving of individual protocols that goes "
+"to make up the AT as a whole in the following figure."
+msgstr ""
+
+#. Tag: caption
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:224
+#, no-c-format
+msgid "The AT Model"
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:227
+#, no-c-format
+msgid "Business Activities (BA)"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:228
+#, no-c-format
+msgid ""
+"Most business-to-business applications require transactional support in "
+"order to guarantee consistent outcome and correct execution. These "
+"applications often involve long running computations, loosely coupled "
+"systems and components that do not share data, location, or administration "
+"and it is difficult to incorporate atomic transactions within such "
+"architectures. For example, an online bookshop may reserve books for an "
+"individual for a specific period of time, but if the individual does not "
+"purchase the books within that period they will be “put back onto the shelf” "
+"for others to buy. Furthermore, because it is not possible for anyone to "
+"have an infinite supply of stock, some online shops may appear to users to "
+"reserve items for them, but in fact may allow others to pre-empt that "
+"reservation (for instance, the same book may be “reserved” for multiple "
+"users concurrently); a user may subsequently find that the item is no longer "
+"available, or may have to be reordered specially for them."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:232
+#, no-c-format
+msgid ""
+"A business activity or BA is designed specifically for these kinds of long-"
+"duration interactions, where exclusively locking resources is impossible or "
+"impractical. In this model services are requested to do work, and where "
+"those services have the ability to undo any work, they inform the BA such "
+"that if the BA later decides the cancel the work (for instance if the "
+"business activity suffers a failure), it can instruct the service to execute "
+"its undo behavior. The key point for Business Activities is that how "
+"services do their work and provide compensation mechanisms is not the domain "
+"of the WS-Business Activity specification, but an implementation decision "
+"for the service provider."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:235
+#, no-c-format
+msgid ""
+"The WS- Business Activity simply defines a protocol for Web services-based "
+"applications to enable existing business processing and workflow systems to "
+"wrap their proprietary mechanisms and interoperate across implementations "
+"and business boundaries."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:238
+#, no-c-format
+msgid ""
+"A business activity may be partitioned into scopes, where a scope is a "
+"business task or unit of work using a collection of Web services. Such "
+"scopes can be nested to arbitrary degrees, forming parent and child "
+"relationships, where a parent scope has the ability to select which child "
+"tasks are to be included in the overall outcome protocol for a specific "
+"business activity, and so clearly non-atomic outcomes are possible. In a "
+"similar manner to traditional nested transactions, if a child task "
+"experiences an error, it can be caught by the parent who may be able to "
+"compensate and continue processing."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:241
+#, no-c-format
+msgid ""
+"When a child task completes it can either leave the business activity or "
+"signal to the parent that the work it has done can be compensated later. In "
+"the latter case, the compensation task may be called by the parent should it "
+"ultimately need to undo the work performed by the child."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:244
+#, no-c-format
+msgid ""
+"Unlike the WS-Atomic Transaction protocol model, where participants inform "
+"the coordinator of their state only when asked, a task within a business "
+"activity can specify its outcome to the parent directly without waiting for "
+"a request. This feature is useful when tasks fail such that the notification "
+"can be used by business activity exception handler to modify the goals and "
+"drive processing forward without having to meekly wait until the end of the "
+"transaction to admit to having failed – a well designed Business Activities "
+"should be proactive, if it is to perform well."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:247
+#, no-c-format
+msgid "Underpinning all of this are three fundamental assumptions:"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:252
+#, no-c-format
+msgid ""
+"All state transitions are reliably recorded, including application state and "
+"coordination metadata (the record of sent and received messages);"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:257
+#, no-c-format
+msgid ""
+"All request messages are acknowledged, so that problems are detected as "
+"early as possible. This avoids executing unnecessary tasks and can also "
+"detect a problem earlier when rectifying it is simpler and less expensive;"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:262
+#, no-c-format
+msgid ""
+"As with atomic transactions, a response is defined as a separate operation "
+"and not as the output of the request. Message input-output implementations "
+"will typically have timeouts that are too short for some business activity "
+"responses. If the response is not received after a timeout, it is resent. "
+"This is repeated until a response is received. The request receiver discards "
+"all but one identical request received."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:267
+#, no-c-format
+msgid ""
+"As with atomic transactions, the business activity model has multiple "
+"protocols: <code>BusinessAgreementWithParticipantCompletion</code> and "
+"<code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the "
+"AT protocol which is driven from the coordinator down to participants, this "
+"protocol is driven much more from the participants upwards."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:270
+#, no-c-format
+msgid ""
+"Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, "
+"a child activity is initially created in the Active state; if it finishes "
+"the work it was created to do and no more participation is required within "
+"the scope of the BA (such as when the activity operates on immutable data), "
+"then the child can unilaterally send an exited message to the parent. "
+"However, if the child task finishes and wishes to continue in the BA then it "
+"must be able to compensate for the work it has performed. In this case it "
+"sends a completed message to the parent and waits to receive the final "
+"outcome of the BA from the parent. This outcome will either be a close "
+"message, meaning the BA has completed successfully or a compensate message "
+"indicating that the parent activity requires that the child task reverse its "
+"work."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:273
+#, no-c-format
+msgid ""
+"The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is "
+"identical to the <code>BusinessAgreementWithParticipantCompletion</code> "
+"protocol with the exception that the child cannot autonomously decide to end "
+"its participation in the business activity, even if it can be compensated. "
+"Rather the child task relies upon the parent to inform it when the child has "
+"received all requests for it to perform work which the parent does by "
+"sending the complete message to the child. The child then acts as it does in "
+"the <code>BusinessAgreementWithParticipantCompletion</code> protocol."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:276
+#, no-c-format
+msgid ""
+"The crux of the BA model compared to the AT model is that is allows the "
+"participation of services that cannot or will not lock resources for "
+"extended periods."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:279
+#, no-c-format
+msgid ""
+"While the full ACID semantics are not maintained by a BA, consistency can "
+"still be maintained through compensation, though the task of writing correct "
+"compensating actions (and thus overall system consistency) is delegated to "
+"the developers of the services under control of the BA. Such compensations "
+"may use backward error recovery, but will typically employ forward recovery."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:283
+#, no-c-format
+msgid "Application Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:284
+#, no-c-format
+msgid ""
+"Application messages are the requests and responses that are sent between "
+"parties that constitute the work of a business process. Any such messages "
+"are considered opaque by XTS, and there is no mandatory message format, "
+"protocol binding, or encoding style so the developer is free to use any "
+"appropriate Web services protocol. In XTS, the transaction context is "
+"propagated within the headers of SOAP messages."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:289
+#, no-c-format
+msgid ""
+"XTS provides out-of-box support for service developers building WS-T-aware "
+"services on the JBoss, Weblogic and Glue platforms1. The provision of "
+"interceptors for automatic context handling at both client and service "
+"significantly simplifies the developer’s workload, allowing the developer to "
+"concentrate on writing the business logic without having to worry about the "
+"transactional infrastructure getting in the way. The interceptors simply add "
+"and remove context elements to application messages without altering the "
+"semantics of those messages. Any service which understands what to do with a "
+"WS-C context can use it, services which do not understand the context (those "
+"services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-"
+"aware) may ignore the context; the important point here is that XTS manages "
+"contexts without user intervention."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:294
+#, no-c-format
+msgid "WS-C, WS-Atomic Transaction and WS-Business Activity Messages"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:295
+#, no-c-format
+msgid ""
+"Although the application or service developer rarely sees or is interested "
+"in the messages exchanged by the transactional infrastructure (the "
+"transaction manager and any participants), it is useful to understand what "
+"kinds of exchanges occur so that the underlying model can be fitted in to an "
+"overall architecture."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:299
+#, no-c-format
+msgid ""
+"In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific "
+"messages are transported using SOAP messaging over HTTP. The types of "
+"messages that are propagated include instructions to perform standard "
+"transaction operations like begin, prepare."
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:303
+#, no-c-format
+msgid ""
+"XTS messages do not interfere in any way, shape, or form, with the "
+"application messages, and nor is there any requirement for an application to "
+"use the same transport as the transaction-specific messages. For example, it "
+"is quite reasonable for a client application to deliver its application-"
+"specific messages using SOAP RPC over SMTP even though under the covers the "
+"XTS messages are delivered using a different mechanism."
+msgstr ""
+
+#. Tag: title
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:310
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml:311
+#, no-c-format
+msgid ""
+"XTS provides a coordination infrastructure designed to allow transactions to "
+"run between enterprises across the Internet. That infrastructure is based on "
+"the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It "
+"supports two kinds of transactions: atomic transactions and business "
+"activities, which can be combined in arbitrary ways to map elegantly onto "
+"the transactional requirements of the underlying problem. The use of the "
+"whole infrastructure is simple due to the fact that its functionality is "
+"exposed through a simple transactioning API. Furthermore XTS provides all of "
+"the necessary plumbing to keep application and transactional aspects of an "
+"application separate, and to ensure that the transactionality of a system "
+"does not interfere with the functional aspects of the system itself."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,15 @@
+#Makefile for JBoss_Transactions_Administrators_Guide
+
+XML_LANG	= en-US
+
+BRAND	= JBoss
+
+
+#OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN 
+
+CHUNK_FIRST = 0
+CHUNK_SECTION_DEPTH = 1
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,29 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,932 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,34 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Preface.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,123 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/de-DE/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language de-DE translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_Transactions_Administrators_Guide 4.3\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-05 22:49+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup><corpauthor> Red Hat Documentation Group </corpauthor></authorgroup>

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="JBoss_Transactions_Administrators_Guide-Product_Name_and_Version">
+<title>JBoss Transactions Administrators Guide CP03</title>
+	
+	<!--<para>JBTA-AG-12/10/07</para>-->
+	
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract><para>This book is the JBoss Enterprise Application Platform edition of the JBoss Transactions Administrators Guide</para>
+	</abstract>
+	<corpauthor><inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/redhat-logo.svg" />
+			</imageobject>
+		</inlinemediaobject>
+	</corpauthor><copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<!--xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /-->
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+
+
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Chapter.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Chapter.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Chapter.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,299 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+	
+<chapter><title>Introduction</title>
+	<para>Apart from ensuring that the run-time system is executing normally, there is little continuous administration needed for the JBoss Transactions software. There are a few points however, that should be made:</para>
+	<para><orderedlist>
+		<listitem>
+			<para>The present implementation of the JBoss TA system provides no security or protection for data. The objects stored in the JBoss Transactions object store are (typically) owned by the user who ran the application that created them. The Object Store and Object Manager facilities make no attempt to enforce even the limited form of protection that Unix/Windows provides. There is no checking of user or group IDs on access to objects for either reading or writing.</para>
+		</listitem>
+		<listitem>
+			<para>Persistent objects created in the Object Store never go away unless the StateManager.destroy method is invoked on the object or some application program explicitly deletes them. This means that the Object Store gradually accumulates garbage (especially during application development and testing phases). At present we have no automated garbage collection facility. Further, we have not addressed the problem of dangling references. That is, a persistent object, A, may have stored a Uid for another persistent object, B, in its passive representation on disk. There is nothing to prevent an application from deleting B even though A still contains a reference to it. When A is next activated and attempts to access B, a run-time error will occur.</para>
+		</listitem>
+		<listitem>
+			<para>There is presently no support for version control of objects or database reconfiguration in the event of class structure changes. This is a complex research area that we have not addressed. At present, if you change the definition of a class of persistent objects, you are entirely responsible for ensuring that existing instances of the object in the Object Store are converted to the new representation. The JBoss Transactions software can neither detect nor correct references to old object state by new operation versions or vice versa.</para>
+		</listitem>
+		<listitem>
+			<para>Object store management is critically important to the transaction service.</para>
+		</listitem>
+	</orderedlist></para>
+
+
+<section><title>ObjectStore management</title>
+	<para>Within the transaction service installation, the object store is updated regularly whenever transactions are created, or when Transactional Objects for Java is used. In a failure free environment, the only object states which should reside within the object store are those representing objects created with the Transactional Objects for Java API. However, if failures occur, transaction logs may remain in the object store until crash recovery facilities have resolved the transactions they represent. As such it is very important that the contents of the object store are not deleted without due care and attention, as this will make it impossible to resolve in doubt transactions. In addition, if multiple users share the same object store it is important that they realise this and do not simply delete the contents of the object store assuming it is an exclusive resource.</para>
+</section>
+
+<section><title>JBoss Transactions runtime information</title>
+	<para>Each module that comprises JBoss Transactions possesses a class called Info. These classes all provide a single toString method that returns an XML document representing the configuration information for that module. So, for example:</para>
+	
+	<programlisting>&lt;module-info name="arjuna"&gt;
+	&lt;source-identifier&gt;unknown&lt;/source-identifier&gt;
+	&lt;build-information&gt;
+	   Arjuna Technologies [mlittle] (Windows 2000 5.0)
+	&lt;/build-information&gt;
+	&lt;version&gt;unknown&lt;/version&gt;
+	&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;
+	&lt;notes&gt;&lt;/notes&gt;
+	&lt;configuration&gt;
+		&lt;properties-file dir="null"&gt;arjuna.properties&lt;/properties-file&gt;
+		&lt;object-store-root&gt;null&lt;/object-store-root&gt;
+	&lt;/configuration&gt;
+&lt;/module-info&gt;</programlisting>
+</section>
+
+<section><title>Failure recovery administration</title>
+	<para>The failure recovery subsystem of JBoss Transactions will ensure that results of a transaction are applied consistently to all resources affected by the transaction, even if any of the application processes or the machine hosting them crash or lose network connectivity. In the case of machine (system) crash or network failure, the recovery will not take place until the system or network are restored, but the original application does not need to be restarted – recovery responsibility is delegated to the Recovery Manager process (see below). Recovery after failure requires that information about the transaction and the resources involved survives the failure and is accessible afterward: this information is held in the ActionStore, which is part of the ObjectStore.</para>
+	<para><orderedlist>
+		<listitem>
+			<para>If the ObjectStore is destroyed or modified, recovery may not be possible.</para>
+		</listitem>
+	</orderedlist></para>
+	<para>Until the recovery procedures are complete, resources affected by a transaction that was in progress at the time of the failure may be inaccessible. For database resources, this may be reported as tables or rows held by “in-doubt transactions”. For TransactionalObjects for Java resources, an attempt to activate the Transactional Object (as when trying to get a lock) will fail.</para>
+	
+	<section><title>The Recovery Manager</title>
+		<para>The failure recovery subsystem of JBoss Transactions requires that the stand-alone Recovery Manager process be running for each ObjectStore (typically one for each node on the network that is running JBoss Transactions applications). The RecoveryManager file is located in the arjunacore jar file within the package <classname>com.arjuna.ats.arjuna.recovery.RecoveryManager</classname>. To start the Recovery Manager issue the following command:</para>
+		<para><command>java com.arjuna.ats.arjuna.recovery.RecoveryManager</command></para>
+		<para>If the <literal>-test</literal> flag is used with the Recovery Manager then it will display a “Ready” message when initialised, i.e.,</para>
+		<para><command>java com.arjuna.ats.arjuna.recovery.RecoveryManager -test</command></para>
+	</section>
+	
+	<section><title>Configuring the Recovery Manager</title>
+		<para>The RecoveryManager reads the properties defined in the <filename>arjuna.properties</filename> file and then also reads the property file <filename>RecoveryManager.properties</filename>, from the same directory as it found the arjuna properties file. An entry for a property in the RecoveryManager properties file will override an entry for the same property in the main TransactionService properties file. Most of the entries are specific to the Recovery Manager.</para>
+		<para>A default version of <filename>RecoveryManager.properties</filename> is supplied with the distribution – this can be used without modification, except possibly the debug tracing fields (see below, Output). The rest of this section discusses the issues relevant in setting the properties to other values (in the order of their appearance in the default version of the file)</para>
+
+		<section><title>Output</title>
+		<para>
+			It is likely that installations will want to have some form of output from the RecoveryManager, to provide a record of what recovery activity has taken place. RecoveryManager uses the logging tracing mechanism provided by the Arjuna Common Logging Framework (CLF), which provides a high level interface that hides differences that exist between existing logging APIs such Jakarta log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache Commons Logging framework and configuration is assumed to occur through that framework.
+		</para>
+		<para>
+			With the CLF applications make logging calls on logger objects. Loggers may use logging Levels to decide if they are interested in a particular log message. Each log message has an associated log Level, that gives the importance and urgency of a log message. The set of possible Log Levels are DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL.
+		</para>
+		<para>
+			The CLF provides an extension to filter logging messages according to finer granularity an application may define. That is, when a log message is provided to the logger with the DEBUG level, additional conditions can be specified to determine if the log message is enabled or not.
+		</para>
+		<para>
+			<orderedlist>
+			<listitem>
+				<para>These conditions are applied if and only the DEBUG level is enabled and the log request performed by the application specifies debugging granularity. </para>
+			</listitem>
+		</orderedlist>
+	</para>
+		<para>When enabled, Debugging is filtered conditionally on three variables: </para>
+		<para><orderedlist>
+			<listitem>
+				<para>Debugging level: this is where the log request with the DEBUG Level is generated from, e.g., constructors or basic methods. </para>
+			</listitem>
+			<listitem>
+				<para>Visibility level: the visibility of the constructor, method, etc. that generates the debugging. </para>
+			</listitem>
+			<listitem>
+				<para>Facility code: for instance the package or sub-module within which debugging is generated, e.g., the object store. </para>
+			</listitem>
+		</orderedlist></para>
+		<para>According to these variables the CLF defines three interfaces. A particular product may implement its own classes according to its own finer granularity. JBoss Transactions uses the default Debugging level and the default Visibility level provided by CLF, but it defines its own Facility Code. JBoss Transactions uses the default level assigned to its logger objects (DEBUG). However, it uses the finer debugging features to disable or enable debug messages. Finer debugging values used by the JBoss Transactions are defined below:</para>
+		<para>Debugging level – JBoss Transactions uses the default values defined in the class <classname>com.arjuna.common.util.logging.DebugLevel</classname></para>
+		<para><orderedlist>
+			<listitem>
+				<para>NO_DEBUGGING:  No diagnostics. A logger object assigned with this values discard all debug requests </para>
+			</listitem>
+			<listitem>
+				<para>FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value allows all debug requests if the facility code and the visibility level match those allowed by the logger.</para>
+			</listitem>
+		</orderedlist></para>
+		<para>Additional Debugging Values are: </para>
+		<para><orderedlist>
+			<listitem>
+				<para>CONSTRUCTORS: Diagnostics from constructors. </para>
+			</listitem>
+			<listitem>
+				<para>DESTRUCTORS:  Diagnostics from finalizers. </para>
+			</listitem>
+			<listitem>
+				<para>CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers. </para>
+			</listitem>
+			<listitem>
+				<para>FUNCTIONS:  Diagnostics from functions. </para>
+			</listitem>
+			<listitem>
+				<para>OPERATORS:  Diagnostics from operators, such as equals. </para>
+			</listitem>
+			<listitem>
+				<para>FUNCS_AND_OPS: Diagnostics from functions and operations. </para>
+			</listitem>
+			<listitem>
+				<para>ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations. </para>
+			</listitem>
+			<listitem>
+				<para>TRIVIAL_FUNCS:  Diagnostics from trivial functions. </para>
+			</listitem>
+			<listitem>
+				<para>TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators. </para>
+			</listitem>
+			<listitem>
+				<para>ALL_TRIVIAL:  Diagnostics from all trivial operations. </para>
+			</listitem>
+		</orderedlist></para>
+		<para>Visibility level – JBoss Transactions uses the default values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname></para>
+		<para><orderedlist>
+			<listitem>
+				<para>VIS_NONE:  No Diagnostic </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PRIVATE :  only from private methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PROTECTED  only from protected methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PUBLIC   only from public methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_PACKAGE   only from package methods. </para>
+			</listitem>
+			<listitem>
+				<para>VIS_ALL:  Full Diagnostic </para>
+			</listitem>
+		</orderedlist></para>
+		<para>Facility Code – JBoss Transactions uses the following values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname></para>
+		<para><orderedlist>
+			<listitem>
+				<para>FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_ABSTRACT_REC = 0x00000008 (abstract records).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_OBJECT_STORE = 0x00000010 (object store implementations).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_STATE_MAN = 0x00000020 (state management and StateManager).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_SHMEM = 0x00000040 (shared memory implementation classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_GENERAL = 0x00000080 (general classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and classes).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_THREADING = 0x00002000 (threading classes).</para>
+			</listitem>
+			<listitem>
+				<para>AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support).</para>
+			</listitem>
+			<listitem>
+				<para>FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager).</para>
+			</listitem>
+		</orderedlist></para>
+		<para>To ensure appropriate output, it is necessary to set some of the finer debug properties explicitly in the <filename>CommonLogging.xml</filename> file, to enable logging messages issued by the JBoss Transactions module.</para>
+		<para>Messages describing the start and the periodical behavior made by the RecoveryManager are output using the INFO level. If other debug tracing is wanted, the finer debugging level should be set appropriately. For instance, the following configuration, in the CommonLogging.xml, enables all debug messages related to the Crash Recovery protocol and issued by the JBoss Transactions module. </para>
+		
+		<programlisting>&lt;!-- Common logging related properties. --&gt;
+&lt;property
+  name="com.arjuna.common.util.logging.DebugLevel"
+  value="0x00000000"/&gt;
+&lt;propertyname="com.arjuna.common.util.logging.FacilityLevel"
+  value="0xffffffff"/&gt;
+&lt;propertyname="com.arjuna.common.util.logging.VisibilityLevel"
+  value="0xffffffff"/&gt;</programlisting>
+		<para><orderedlist>
+			<listitem>
+				<para>Two logger objects are provided, one manages I18N messages and a second does not.</para>
+			</listitem>
+		</orderedlist></para>
+		<para>Setting the normal recovery messages to the INFO level allows the RecoveryManager producing a moderate level of reporting. If nothing is going on, it just reports the entry into each module for each periodic pass. To disable INFO messages produced by the Recovery Manager, the logging level could be set to the higher level: ERROR. Setting the level to ERROR means that the RecoveryManager will only produce error, warning or fatal messages.</para>
+	</section>
+</section>
+	
+	<section><title>Periodic Recovery</title>
+		<para>The RecoveryManager scans the ObjectStore and other locations of information, looking for transactions and resources that require, or may require recovery. The scans and recovery processing are performed by recovery modules, (instances of classes that implement the com.arjuna.ats.arjuna.recovery.RecoveryModule interface), each with responsibility for a particular category of transaction or resource. The set of recovery modules used are dynamically loaded, using properties found in the RecoveryManager property file.</para>
+		<para>The interface has two methods: <literal>periodicWorkFirstPass</literal> and <literal>periodicWorkSecondPass</literal>. At an interval (defined by property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</classname>), the RecoveryManager will call the first pass method on each property, then wait for a brief period (defined by property <classname>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the second pass of each module. Typically, in the first pass, the module scans (e.g. the relevant part of the ObjectStore) to find transactions or resources that are in-doubt (i.e. are part way through the commitment process). On the second pass, if any of the same items are still in-doubt, it is possible the original application process has crashed and the item is a candidate for recovery. </para>
+		<para>An attempt, by the RecoveryManager, to recover a transaction that is still progressing in the original process(es) is likely to break the consistency. Accordingly, the recovery modules use a mechanism (implemented in the <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</classname> package) to check to see if the original process is still alive, and if the transaction is still in progress. The RecoveryManager only proceeds with recovery if the original process has gone, or, if still alive, the transaction is completed. (If a server process or machine crashes, but the transaction-initiating process survives, the transaction will complete, usually generating a warning. Recovery of such a transaction is the RecoveryManager’s responsibility).</para>
+		<para>It is clearly important to set the interval periods appropriately. The total iteration time will be the sum of the <literal>periodicRecoveryPeriod</literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it takes to scan the stores and to attempt recovery of any in-doubt transactions found, for all the recovery modules. The recovery attempt time may include connection timeouts while trying to communicate with processes or machines that have crashed or are inaccessible (which is why there are mechanisms in the recovery system to avoid trying to recover the same transaction for ever). The total iteration time will affect how long a resource will remain inaccessible after a failure – <literal>periodicRecoveryPeriod</literal> should be set accordingly (default is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be comparatively short (default is 10 seconds) – its purpose is mainly to reduce the number of transactions that are candidat!
 es for recovery and which thus require a “call to the original process to see if they are still in progress</para>
+		<para><orderedlist>
+			<listitem>
+				<para>In previous versions of JBoss Transactions there was no contact mechanism, and the backoff period had to be long enough to avoid catching transactions in flight at all. From 3.0, there is no such risk.</para>
+			</listitem>
+		</orderedlist></para>
+		<para>Two recovery modules (implementations of the <classname>com.arjuna.ats.arjuna.recovery.RecoveryModule</classname> interface) are supplied with JBoss Transactions, supporting various aspects of transaction recovery including JDBC recovery. It is possible for advanced users to create their own recovery modules and register them with the Recovery Manager. The recovery modules are registered with the RecoveryManager using properties that begin with “<classname>com.arjuna.ats.arjuna.recovery.RecoveryExtension</classname>”. These will be invoked on each pass of the periodic recovery in the sort-order of the property names – it is thus possible to predict the ordering (but note that a failure in an application process might occur while a periodic recovery pass is in progress). The default Recovery Extension settings are:</para>
+		
+		<programlisting>com.arjuna.ats.arjuna.recovery.recoveryExtension1 = 
+  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule
+
+com.arjuna.ats.arjuna.recovery.recoveryExtension2 = 
+  com.arjuna.ats.txoj.recovery.TORecoveryModule</programlisting>
+	</section>
+	
+	<section><title>Expired entry removal</title>
+		<para>The operation of the recovery subsystem will cause some entries to be made in the ObjectStore that will not be removed in normal progress. The RecoveryManager has a facility for scanning for these and removing items that are very old. Scans and removals are performed by implementations of the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> interface. Implementations of this interface are loaded by giving the class name as the value of a property whose name begins with <classname>com.arjuna.ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the <command>scan()</command> method on each loaded Expiry Scanner implementation at an interval determined by the property <classname>com.arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is given in hours – default is 12. An <classname>expiryScanInterval</classname> value of zero will suppress any expiry scanning. If the value as supplied is positive, the first scan!
  is performed when RecoveryManager starts; if the value is negative, the first scan is delayed until after the first interval (using the absolute value)</para>
+		<para>The kinds of item that are scanned for expiry are:</para>
+		<para>TransactionStatusManager items : one of these is created by every application process that uses JBoss Transactions – they contain the information that allows the RecoveryManager to determine if the process that initiated the transaction is still alive, and what the transaction status is. The expiry time for these is set by the property <classname>com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours – default is 12, zero means never expire). The expiry time should be greater than the lifetime of any single JBoss Transactions-using process.</para>
+		<para>The Expiry Scanner properties for these are:</para>
+		
+		<programlisting>com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =
+  com.arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner</programlisting></section>
+</section>
+
+<section><title>Errors and Exceptions</title>
+	<para>In this section we shall cover the types of errors and exceptions which may be thrown or reported during a transactional application and give probable indications of their causes.</para>
+	<para><orderedlist>
+		<listitem>
+			<para>NO_MEMORY: the application has run out of memory (thrown an <classname>OutOfMemoryError</classname>) and JBoss Transactions has attempted to do some cleanup (by running the garbage collector) before re-throwing the exception. This is probably a transient problem and retrying the invocation should succeed.</para>
+		</listitem>
+		<listitem>
+			<para>com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which means that the transaction system must shut down. Prior to this error being thrown the transaction service will have ensured that all running transactions have rolled back. If caught, the application should tidy up and exit. If further work is attempted, application consistency may be violated.</para>
+		</listitem>
+		<listitem>
+			<para>com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to use the transaction service in a manner inconsistent with the current licence. The transaction service will not allow further forward progress for existing or new transactions.</para>
+		</listitem>
+		<listitem>
+			<para>com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while the transaction service attempted to use the object store. Further forward progress is not possible.</para>
+		</listitem>
+		<listitem>
+			<para>Object store warnings about access problems on states may occur during the normal execution of crash recovery. This is the result of multiple concurrent attempts to perform recovery on the same transaction. It can be safely ignored. </para>
+		</listitem>
+	</orderedlist></para>
+</section>
+
+<section><title>Selecting the JTA implementation</title>
+	<para>Two variants of the JTA implementation are now provided and accessible through the same interface. These are:</para>
+	<para><orderedlist>
+		<listitem>
+			<para>A purely local JTA, which only allows non-distributed JTA transactions to be executed. This is the only version available with the JBoss Transactions product.</para>
+		</listitem>
+		<listitem>
+			<para>A remote, CORBA-based JTA, which allows distributed JTA transactions to be executed. This version is only available with the ArjunaJTS product and requires a supported CORBA ORB.</para>
+		</listitem>
+	
+		<listitem>
+			<para>both of these implementations are fully compatible with the transactional JDBC driver provided with JBoss Transactions.</para>
+		</listitem>
+	</orderedlist></para>
+	<para>In order to select the local JTA implementation it is necessary to perform the following steps:</para>
+	<para><orderedlist>
+		<listitem>
+			<para>make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</literal> is set to <literal>com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</literal>.</para>
+		</listitem>
+		<listitem>
+			<para>make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</literal> is set to <literal>com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</literal>.</para>
+		</listitem>
+	
+		<listitem>
+			<para>these settings are the default values for the properties and do not need to be specified if the local implementation is required.</para>
+		</listitem>
+	</orderedlist>
+</para>
+</section>
+</chapter>
+
+	
+	
+
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Feedback.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Feedback.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Feedback.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+<section id="Feedback">
+	<title>Feedback</title>
+	<para>
+			If you spot a typo in this guide, or if you have thought of a way to make this manual better, we would love to hear from you! Submit a report in <ulink url="http://jira.jboss.com/jira/browse/JBPAPP">JIRA</ulink> against the Product: JBoss Enterprise Application Platform, Version: <replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</emphasis>. If you have a suggestion for improving the documentation, try to be as specific as possible. If you have found an error, include the section number and some of the surrounding text so we can find it easily.
+	</para>
+</section>
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "JBoss_Enterprise_Application_Platform">
+<!ENTITY BOOKID "JBoss_Transactions_Administrators_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/JBoss_Transactions_Administrators_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,48 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="JBoss_Transactions_Administrators_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include>
+		
+	<section><title>What This Guide Contains</title>
+		<para>The Administration Guide contains information on how to administer JBoss Transactions API 4.2.3.</para>
+	</section>
+	<section><title>Audience</title>
+		<para>This guide is most relevant to engineers who are responsible for administration of JBoss Transactions API 4.2.3 installations.</para>
+	</section>
+	
+	<section><title>Prerequisites</title>
+		<para>In order to administer JBoss Transactions it is first necessary to understand that it relies on ArjunaCore for a lot of the transaction functionality. As such, it is important to read the ArjunaCore Administration Guide before attempting to administer JBoss Transactions.</para>
+	</section>
+	
+	<section><title>Organization</title>
+		<para>This guide contains the following chapters:</para>
+		<para><orderedlist>
+			<listitem>
+				<para>Chapter 1, Administration of JBoss Transactions: describes how to administer JBoss Transactions, mainly by selecting the variant of JTA implementation: pure local or remote (allowing distributed transactions).</para>
+			</listitem>
+		</orderedlist></para>
+	</section>
+	
+	<section><title>Additional Documentation</title>
+		<para>In addition to this guide, the following guides are available in the JBoss Transactions API 4.2.3 documentation set:</para>
+		<para><orderedlist>
+			<listitem>
+				<para>JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking information about JBoss Transactions API 4.2.3.</para>
+			</listitem>
+			<listitem>
+				<para>JBoss Transactions API 4.2.3 Installation Guide: This guide provides instructions for installing JBoss Transactions API 4.2.3.</para>
+			</listitem>
+			<listitem>
+				<para>JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for writing applications. </para>
+			</listitem>
+		</orderedlist></para>
+	</section>
+</preface>

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,29 @@
+# translation of Appendix.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:13+0000\n"
+"PO-Revision-Date: 2008-06-19 10:16+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Historial de revisiones"
+
+#. Tag: para
+#: Appendix.xml:10
+#, no-c-format
+msgid "<para>TBD</para>"
+msgstr "<para>TBD</para>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,35 @@
+# translation of Author_Group.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:32+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "Grupo de documentación Headgear FF0000 "
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,45 @@
+# translation of Book_Info.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:37+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "Manual de administración de JBoss Transactions API 4.2.3 "
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+"Este libro es la edición de JBoss Enterprise Application Platform del manual de administración de JBoss "
+"Transactions "
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1280 @@
+# translation of Chapter.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:13+0000\n"
+"PO-Revision-Date: 2008-06-20 11:40+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"Aparte de asegurarse de que el sistema en tiempo de ejecución se encuentra "
+"ejecutando normalmente, se necesita muy poca administración continua para el "
+"software de JBoss Transactions. Sin embargo hay unos pocos puntos a notar:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+"La implementación presente del sistema de JBoss TA no proporciona seguridad "
+"o protección para datos. Los objetos almacenados en el almacenamiento de "
+"objetos de JBoss Transactions son (usualmente) de propiedad del usuario que "
+"ejecutó la aplicación que los creó. El almacenamiento de objetos y el "
+"administrador de objetos no intentan reforzar ni siquiera la forma limitada "
+"de protección que Unix/Windows proporcionan. No hay verificación de IDs de "
+"usuarios o grupos al acceder los objetos ya esa para leer o escribir."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+"Los objetos persistentes creados en el almacenamiento de objetos nunca "
+"desaparecen a menos de que el método StateManager.destroy sea invocado en el "
+"objeto o que alguna aplicación los borre de manera explícita. Esto significa "
+"que el almacenamiento de objetos gradualmente acumula basura (especialmente "
+"durante el desarrollo de la aplicación y las fases de prueba). Hasta el "
+"momento no contamos con una característica de recolección de basura de "
+"manera automatizada. Además no hemos resuelto el problema de referencias "
+"colgantes. Es decir, un objeto persistente, A, puede haber almacenado un Uid "
+"para otro objeto persistente, B, en su representación pasiva en el disco. No "
+"hay nada que evite que una aplicación borre a B aunque A todavía contenga la "
+"referencia a este. Cuando A sea activado e intente acceder a B, tendrá lugar "
+"un error en tiempo de ejecución. "
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+"Hasta el momento no hay soporte para el control de versión de objetos ni la "
+"reconfiguración de bases de datos en el evento de que la estructura de la "
+"clase cambie. Esta es un área de investigación bastante compleja que aún no "
+"hemos abordado. Actualmente si cambia la definición de una clase de objetos "
+"persistentes, es completamente responsable de asegurarse de que las "
+"instancias existentes del objeto en el almacenamiento de objetos sean "
+"convertidas a la nueva representación. El software de JBoss Transactions no "
+"puede detectar ni corregir referencias en estados de objetos viejos por "
+"medio de nuevas versiones de operaciones o viceversa."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr ""
+"La administración de almacenamiento de objetos es críticamente importante "
+"para el servicio de transacciones. "
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "Administración de ObjectStore"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"Dentro de la instalación del servicio de transacciones, el almacenamiento de "
+"objetos se actualiza regularmente cuando las transacciones se crean o cuando "
+"se utilizan objetos transaccionales para Java. En un entorno libre de "
+"fallas, los únicos estados de objetos que deben residir dentro del "
+"almacenamiento de objetos son los que representan los objetos creados con "
+"los objetos transaccionales para Java API. Sin embargo, si tienen lugar "
+"fallas, los registros de las transacciones pueden permanecer en el "
+"almacenamiento de objetos hasta que las utilidades de recuperación de fallos "
+"hayan resuelto las transacciones que estos representan. Por lo tanto es muy "
+"importante que el contenido del almacenamiento de objetos no se borre sin la "
+"debida atención ya que esto hará imposible el resolver transacciones en "
+"duda. Además si múltiples usuarios comparten el mismo almacenamiento de "
+"objetos es importante que esten concientes de esto y que no simplemente "
+"borren el contenido del almacenamiento de objetos asumiendo que es un "
+"recurso exclusivo. "
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "Información en tiempo de ejecución de JBoss Transactions"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+"Cada módulo que comprende JBoss Transactions posee una clase llamada Info. "
+"Todas estas clases proporcionan un sólo método toString que retorna un "
+"documento XML representando la información de la configuración para ese "
+"módulo. Por ejemplo:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "Administración de recuperación de fallas"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"El subsistema de recuperación de fallas de JBoss Transactions se asegurará "
+"de que los resultados de una transacción se apliquen consistentemente a todos "
+"los recursos afectados por la transacción, incluso si cualquiera de los "
+"procesos de la aplicación o la máquina anfitriona se cuelga o si pierde "
+"conectividad con la red. En el caso en que una máquina (sistema) se cuelgue o "
+"que la red falle, la recuperación no tendrá lugar hasta que el sistema o la "
+"red se reestablezcan, pero la aplicación original no necesita ser reiniciada "
+"- la responsabilidad de la recuperación se delega al proceso administrador "
+"de recuperación (vea a continuación). La recuperación después de una falla "
+"requiere que la información sobre la transacción y los recursos involucrados "
+"sobreviva el fallo y sea accesible después: esta información se encuentra en "
+"el ActionStore, el cual es parte del ObjectStore."
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+"Si el ObjectStore se destruye o se modifica, es posible que no se pueda "
+"recuperar."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"Hasta que los procedimientos de recuperación esten completos, puede que los "
+"recursos afectados por una transacción que se encontraba en progreso cuando "
+"la falla ocurrió sean inaccesibles. Para los recursos de bases de datos, "
+"esto se puede reportar como tablas o filas que se encuentran en "
+"“transacciones dudosas”. Para TransactionalObjects para recursos Java, el "
+"intentar activar el objeto transaccional (como cuando trata de obtener un "
+"bloqueo) fallará. "
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "El administrador de recuperación "
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"El subsistema de recuperación de fallas de JBoss Transactions requiere que "
+"el proceso autónomo del administrador de recuperación esté ejecutando para "
+"cada ObjectStore (usualmente uno para cada nodo en la red en que se "
+"encuentra ejecutando aplicaciones de JBoss Transactions). El archivo del "
+"RecoveryManager se encuentra en el archivo jar arjunacore dentro del paquete "
+"<classname>com.arjuna.ats.arjuna.recovery.RecoveryManager</classname>. Para "
+"iniciar el administrador de recuperación emita el siguiente comando: "
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+"Si la etiqueta <literal>-test</literal> se utiliza con el administrador de "
+"recuperación entonces aparecerá un mensaje que dice “Ready” por ejemplo "
+"cuando se inicializa."
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Configuración del administrador de recuperación"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"El RecoveryManager lee las propiedades definidas en el archivo "
+"<filename>arjuna.properties</filename> y luego también lee el archivo de "
+"propiedades <filename>RecoveryManager.properties</filename>, desde el mismo "
+"directorio desde donde encontró el archivo de propiedades arjuna. Una "
+"entrada para una propiedad en el archivo de propiedades RecoveryManager "
+"sobreescribirá una entrada para la misma propiedad en el archivo de "
+"propiedades principal TransactionService. La mayoría de las entradas son "
+"especificas para el administrador de recuperación. "
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"Junto con la distribución se proporciona una versión predeterminada de "
+"<filename>RecoveryManager.properties</filename> - esto se puede utilizar sin "
+"modificaciones, a excepción posiblemente de los campos de rastreo de "
+"depuración (vea a continuación, salida). El resto de esta sección discute "
+"los puntos relevantes al configurar las propiedades a otros valores (en "
+"orden de aparición en la versión predeterminada del archivo). "
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Salida"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"Es posible que las instalaciones querrán tener alguna forma de salida del "
+"RecoveryManager, para proporcionar un registro de la actividad de "
+"recuperación que ha tenido lugar. El RecoveryManager utiliza el mecanismo de "
+"rastreo de registros que el Arjuna Common Logging Framework (CLF) "
+"proporciona, el cual brinda una interfaz de alto nivel que esconde las "
+"diferencias que existen entre las APIs de registro ya presentes tal como "
+"Jakarta log4j o JDK 1.4 logging API. CLF indirecta todos los registros a "
+"través de Apache Commons Logging framework y se asume que la configuración "
+"ocurre por medio de ese marco de trabajo. "
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"Con el CLF, las aplicaciones realizan llamadas de registro en objetos de "
+"registro. Los registros pueden utilizar niveles de registro para decidir si "
+"están interesados en un mensaje de registro en particular. Cada mensaje de "
+"registro tiene un nivel de registro asociado, esto proporciona la "
+"importancia y la urgencia de un mensaje de registro. El grupo de niveles de "
+"registro posibles son DEBUG, INFO, WARN, ERROR y FATAL. Los niveles "
+"definidos se ordenan de acuerdo con sus valores enteros así: DEBUG &lt; INFO "
+"&lt; WARN &lt; ERROR &lt; FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"El CFL proporciona una extensión para filtrar mensajes de registro de "
+"acuerdo con las especificaciones detalladas que una aplicación puede "
+"definir. Es decir, cuando se le pasa un mensaje de registro al registro con "
+"un nivel DEBUG, se pueden establecer condiciones adicionales para determinar "
+"si el mensaje de registro está activado o no. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+"Estas condiciones se aplican sólamente si el nivel DEBUG está activado y la "
+"petición de registro realizada por la aplicación especifica granuralidad de "
+"depuración. "
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+"Cuando está activado, la depuración se filtra condicionalmente de acuerdo "
+"con tres variables:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+"Nivel de depuración: este es desde donde se genera la petición de registro "
+"del nivel DEBUG, por ejemplo, métodos básicos o constructores. "
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+"Nivel de visibilidad: la visiblidad del constructor, método, etc que genera "
+"la depuración. "
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+"Código de utilidad: por ejemplo, el paquete o sub-módulo dentro del cual se "
+"genera la depuración, por ejemplo, el almacenamiento de objetos. "
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"De acuerdo con estas variables el CLF define tres interfaces. Un producto en "
+"particular puede implementar sus propias clases de acuerdo con su propio "
+"nivel de detalle. JBoss Transactions utiliza el nivel predeterminado "
+"Debugging y el nivel predeterminado Visibility que CLF proporciona, pero "
+"define su propio Facility Code. JBoss Transactions usa el nivel "
+"predeterminado asignado a sus objetos de registro (DEBUG). Sin embargo, "
+"utiliza las características de depuración más detalladas para desactivar o "
+"activar los mensajes de depuración. Los valores de depuración más detallados "
+"que JBoss Transactions utiliza están definidos a continuación: "
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+"Nivel de depuración – JBoss Transactions utiliza los valores predeterminados "
+"definidos en la clase <classname>com.arjuna.common.util.logging.DebugLevel</"
+"classname>"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+"NO_DEBUGGING:  No hay diagnóstico. Un objeto de registro asignado con este valor "
+"descarta todas las peticiones de depuración. "
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+"FULL_DEBUGGING: Diagnóstico completo. Un objeto de registro con este valor "
+"permite todas las peticiones de depuración si el facility code y el nivel de "
+"visibilidad coinciden con aquellos permitidos por el registro."
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Los valores de depuración adicionales son: "
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnóstico de los constructores."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnóstico de los finalizadores."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnóstico de los constructores y los finalizadores."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS:  Diagnóstico desde las funciones."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnóstico desde los operadores como por ejemplo iguales."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnóstico desde las funciones y operaciones."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnóstico desde todas las operaciones no triviales."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnóstico desde las funciones triviales."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnóstico desde operaciones triviales y operadores."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnóstico desde todas las operaciones triviales."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Nivel de visibilidad – JBoss Transactions utiliza los valores "
+"predeterminados definidos en la clase <classname>com.arjuna.common.util."
+"logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  No hay diagnóstico"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  Sólo desde métodos privados."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  Sólo desde métodos protegidos."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   Sólo desde métodos públicos."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr "VIS_PACKAGE   Sólo desde métodos de paquetes"
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Diagnóstico completo"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Facility Code – JBoss Transactions utiliza los siguientes valores definidos "
+"en la clase <classname>com.arjuna.common.util.logging.VisibilityLevel</"
+"classname>"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (módulo central de acción atómica)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (clases (buffer) de administración de estado)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (registros abstractos)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+"FAC_OBJECT_STORE = 0x00000010 (implementaciones de almacenamiento de "
+"objetos)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (administración de estado y StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (clases de implementación de memoria compartida)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (clases generales)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (rastro detallado del módulo de recuperación "
+"de fallos y clases)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (hilos de clases)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (soporte JDBC 1.0 y 2.0)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (salida normal para el administrador de "
+"recuperación de fallas)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+"Para asegurar una salida apropiada, es necesario establecer algunas de las "
+"propiedades de depuración más detalladas de manera explícita en el archivo "
+"<filename>CommonLogging.xml</filename>, para habilitar los mensajes de "
+"registro que el módulo JBoss Transactions emite."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+"Los mensajes que describen el inicio y el comportamiento periódico que el "
+"RecoveryManager realiza son la salida utilizando el nivel INFO. Si quiere "
+"otro rastreo de depuración, el nivel de depuración detallado se debe "
+"configurar apropiadamente. Por ejemplo, la siguiente configuración en el "
+"CommonLogging.xml, activa todos los mensajes de depuración relacionados con "
+"el protocolo Crash Recovery y emitido por el módulo JBoss Transactions. "
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+"Se proporcionan dos objetos de registro, uno administra los mensajes de I18N "
+"y el otro no. "
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+"El configurar los mensajes de recuperación normal al nivel INFO le permite "
+"al RecoveryManager producir un nivel moderado de reporte. Si no sucede nada, "
+"simplemente reporta la entrada en cada módulo para cada pase periódico. Para "
+"desactivar los mensajes INFO que el administrador de recuperación produce, "
+"el nivel de registro se puede configurar al nivel más alto: ERROR. El "
+"establecer el nivel a ERROR significa que el RecoveryManager sólo producirá "
+"mensajes de error, de advertencia o de error fatal. "
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Recuperación periódica"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"El RecoveryManager escanea el ObjectStore y otros lugares de información, "
+"buscando transacciones y recursos que requieren o que pueden llegar a "
+"requerir recuperación. El procesamiento de recuperación y de escaneo es "
+"realizado por los módulos de recuperación (instancias de clases que "
+"implementan la interfaz com.arjuna.ats.arjuna.recovery.RecoveryModule), cada "
+"una con responsabilidad de una categoría en particular de transacción o "
+"recurso. El grupo de módulos de recuperación utilizados se cargan "
+"dinámicamente utilizando las propiedades encontradas en el archivo de "
+"propiedades del RecoveryManager."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"La interfaz tiene dos métodos: <literal>periodicWorkFirstPass</literal> y "
+"<literal>periodicWorkSecondPass</literal>. En un intervalo (definido por la "
+"propiedad <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), el RecoveryManager llamará el primer método pass en cada "
+"propiedad y luego espera durante un breve periodo (definido por la propidad "
+"<classname>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>) "
+"y luego llama al segundo método pass de cada módulo. Usualmente en el primer método pass, "
+"el módulo escanea (por ejemplo, la parte relevante del ObjectStore) para "
+"encontrar transacciones o recursos que son dudosos (por ejemplo, se "
+"encuentran en cierta parte del proceso de guardado). En el segundo método pass, si "
+"cualquiera de los mismos objetos están en duda, es posible que el proceso de "
+"aplicación original se haya caído y que el objeto sea un candidato para "
+"recuperación."
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"Un intento del RecoveryManager de recuperar una transacción que aún está en curso en el proceso original con mucha probabilidad romperá la "
+"consistencia. Así mismo, los módulos de recuperación utilizan un mecanismo "
+"(implementado en el paquete <classname>com.arjuna.ats.arjuna.recovery."
+"TransactionStatusManager</classname>) para chequear si el proceso original "
+"todavía está vivo y si la transacciín aún se encuentra en progreso. El "
+"RecoveryManager sólo procede con la recuperación si el proceso original se "
+"ha ido o si aún está vivo entonces la transacción se completa, (si el "
+"proceso de un servidor o si una máquina se cuelga, pero el proceso de inicio "
+"de la transacción sobrevive, la transacción se completará, usualmente "
+"generando una advertencia. La recuperación de tal transacción es la "
+"responsabilidad del RecoveryManager)."
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"Es claramente muy importante el establecer los periodos de los intervalos "
+"apropiadamente. El tiempo de iteración total será la suma del "
+"<literal>periodicRecoveryPeriod</literal>, <literal>recoveryBackoffPeriod</"
+"literal> y la cantidad de tiempo que toma el escanear los almacenamientos y "
+"el tratar de recuperar cualquier transacción dudosa que se encuentre para "
+"todos los módulos de recuperación. El tiempo de intento de recuperación "
+"puede incluir la expiración de la conexión mientras que el tratar de "
+"comunicarse con procesos o máquinas que se han colgado o que son "
+"inaccesibles (razón por la cual hay mecanismos en el sistema de "
+"recuperación para evitar el tratar de recuperar la misma transacción "
+"indefinidamente). El tiempo de iteración total afectará el tiempo que un "
+"recurso permanecerá inaccesible después de una falla – "
+"<literal>periodicRecoveryPeriod</literal> se debe establecer de acuerdo con "
+"esto (por defecto es 120 segundos). El <literal>recoveryBackoffPeriod</"
+"literal> puede ser comparativamente corto (por defecto es 10 segundos) – su "
+"propósito principal es reducir el número de transacciones que son candidatas "
+"para la recuperación y que por lo tanto requieren una “llamada al proceso "
+"original para ver si aún se encuentran en progreso. "
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+"En versiones anteriores de JBoss Transactions no había un mecanismo de "
+"contacto y el periodo de espera tenía que ser lo suficientemente largo para "
+"evitar las transacciones en vuelo. Desde 3.0 no hay tal riesgo. "
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"Dos módulos de recuperación (implementaciones de la interfaz <classname>com."
+"arjuna.ats.arjuna.recovery.RecoveryModule</classname>) vienen junto con "
+"JBoss Transactions, soportando varios aspectos de la recuperación de "
+"transacciones incluyendo la recuperación JDBC. Para usuarios avanzados es "
+"posible crear sus propios módulos de recuperación y registralos con el "
+"Recovery Manager. Los módulos de recuperación están registrados con el "
+"RecoveryManager utilizando propiedades que empiezan por “<classname>com."
+"arjuna.ats.arjuna.recovery.RecoveryExtension</classname>”. Estos se "
+"invocarán en cada pase de la recuperación periódica en el orden corto de los "
+"nombres de propiedades – por lo tanto es posible predecir el orden (pero "
+"note que una falla en un proceso de la aplicación puede ocurrir mientras "
+"tiene lugar un pase de recuperación periódica). La configuración "
+"predeterminada de Recovery Extension es:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Eliminación de entradas vencidas"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"La operación del subsistema de recuperación hará que se realicen algunas "
+"entradas en el ObjectStore que no se eliminarán en el progreso normal. El "
+"RecoveryManager tiene una utilidad para escanear estos y para eliminar "
+"objetos que son muy viejos. Los escaneos y las eliminaciones se realizan "
+"por medio de implementaciones de la interfaz <classname>com.arjuna.ats.arjuna."
+"recovery.ExpiryScanner</classname>. Las implementaciones de esta interfaz se "
+"cargan dando el nombre de la clase como el valor de una propiedad cuyo "
+"nombre empieza por <classname>com.arjuna.ats.arjuna.recovery.expiryScanner</"
+"classname>. El RecoveryManager llama al método <command>scan()</command> en "
+"cada implementación Expiry Scanner cargada en un intervalo determinado por "
+"la propiedad <classname>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"classname>. Este valor se da en horas – por defecto es 12. Un valor "
+"<classname>expiryScanInterval</classname> de cero suprime cualquier escaneo "
+"de vencimiento. Si el valor tal como se proporciona es positivo entonces el "
+"primer escaneo se realiza cuando inicia el RecoveryManager, si el valor es "
+"negativo entonces el primer escaneo se retrasa hasta después del primer "
+"intervalo (utilizando el valor absoluto)."
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Las clases de objetos que se escanean por vencimiento son:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager items :se crea uno de estos por cada proceso de "
+"aplicación que utilice JBoss Transactions – estos contienen la información "
+"que le permite al RecoveryManager determinar si el proceso que inició la "
+"transacción todavía esta vivo y también determina el estatus de la "
+"transacción. El tiempo de vencimiento para estos está establecido por la "
+"propiedad <classname>com.arjuna.ats.arjuna.recovery."
+"transactionStatusManagerExpiryTime</classname> (en horas – por defecto es "
+"12, cero significa que nunca expira). El tiempo de vencimiento debe ser "
+"mayor que el tiempo de vida de cualquier proceso que esté utilizando JBoss "
+"Transactions."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Las propiedades del Expiry Scanner para estos son: "
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Errores y excepciones"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+"En esta sección vamos a cubrir los tipos de errores y excepciones que se "
+"pueden presentar o reportar durante una aplicación transaccional y daremos "
+"indicaciones probables de sus causas."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY: la aplication no tiene más memoria (presenta un "
+"<classname>OutOfMemoryError</classname>) y JBoss Transactions ha intentado "
+"realizar alguna limpieza (ejecutando el colector de basura) antes de volver "
+"a presentar la excepción. Probablemente este es un problema transitorio y "
+"con volver a intentar la invocación debe ser suficiente."
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: ha occurrido un error lo cual "
+"significa que el sistema de transacciones se debe apagar. Antes de que este "
+"error se presente el servicio de transacciones se asegurará de que todas las "
+"transacciones ejecutándose se hayan deshecho. Si lo alcanza, la aplicación "
+"debe poner todo en orden y termina. Si se intenta hacer más cosas entonces "
+"la consistencia de la aplicación se puede llegar a violar."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: se ha intentado utilizar el "
+"servicio de transacciones de una manera inconsistente con la licencia "
+"actual. El servicio de transacciones no permitirá progresar más alla para "
+"transacciones existentes o nuevas. "
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: un error ocurrió mientras "
+"el servicio de transacciones intentaba utilizar el almacenamiento de "
+"objectos. No es posible avanzar más allá."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+"Las advertencias del almacenamiento de objetos sobre problemas de acceso en "
+"estados pueden ocurrir durante la ejecución normal de recuperación de un "
+"sistema que se ha colgado. Este es el resultado de múltiples intentos "
+"simultáneos para realizar la recuperación en la misma transacción. Se puede "
+"ignorar de manera segura."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Selección de la implementación JTA"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+"Ahora se proporcionan dos variantes de la implementación JTA y son "
+"accesibles a través de la misma interfaz. Estas son:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+"Una JTA meramente local, la cual sólo permite que se ejecuten transacciones "
+"JTA no distribuidas. Esta es la única versión disponible con el producto "
+"JBoss Transactions. "
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+"Una JTA remota basada en CORBA, la cual permite la ejecución de "
+"transacciones JTA distribuidas. Esta versión sólo está disponible con el "
+"producto ArjunaJTS y requiere un CORBA ORB soportado."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+"Ambas implementaciones son completamente compatibles con el controlador JDBC "
+"transaccional que JBoss Transactions proporciona."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+"Con el fin de seleccionar la implementación JTA local es necesario realizar "
+"los siguientes pasos: "
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"Asegúrese de que la propiedad <literal>com.arjuna.ats.jta."
+"jtaTMImplementation</literal> se configura como <literal>com.arjuna.ats."
+"internal.jta.transaction.arjunacore.TransactionManagerImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"Asegúrese de que la propiedad <literal>com.arjuna.ats.jta."
+"jtaUTImplementation</literal> se configura como <literal>com.arjuna.ats."
+"internal.jta.transaction.arjunacore.UserTransactionImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""
+"Esta configuración son los valores predeterminados para las propiedades y no "
+"es necesario especificarlos si se requiere la implementación local. "
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# translation of Feedback.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:42+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Comentarios"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"Si encuentra algún error de ortografía en este manual o si se le ocurre una manera de mejorar este manual ¡nos encantaría escuchar sus ideas! Llene un reporte en <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> con referencia al Producto: JBoss Enterprise Application Platform, Versión: "
+"<replaceable>&lt;version&gt;</replaceable>, Componente: <emphasis>Doc</"
+"emphasis>. Si tiene alguna sugerencia para mejorar la documentación trate de ser lo más especifico posible. Si encuentra un error, incluya el número de la sección y algo del contexto para que lo podamos identificar fácilmente. "
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Preface.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,133 @@
+# translation of Preface.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-20 11:30+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Prefacio"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "Contenido de este manual "
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+"El manual de administración contiene información sobre cómo administrar JBoss "
+"Transactions API 4.2.3."
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Audiencia"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Este manual es relevante para aquellos ingenieros responsables de la administración de la instalación de JBoss Transactions API 4.2.3. "
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Prerequisitos"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Con el fin de administrar JBoss Transactions primero es necesario comprender que este depende de ArjunaCore para muchas de las funcionalidades relacionadas con las transacciones. Por lo tanto es importante leer el manual de administración de ArjunaCore antes de intentar el administrar JBoss Transactions."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organización"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Este manual contiene los siguientes capítulos: "
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr ""
+"Capítulo 1, Administración de JBoss Transactions: describe cómo administrar "
+"JBoss Transactions, principalmente seleccionando la variante de la implementación JTA: "
+"puramente local o remota (permitiendo transacciones distribuidas)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Documentación adicional"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+"Además de este manual, los siguientes manuales se encuentran disponibles en el grupo de documentación de JBoss "
+"Transactions API 4.2.3: "
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "Notas de lanzamiento de JBoss Transactions API 4.2.3: Proporciona información de última hora con relación a JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "Manual de instalación de JBoss Transactions API 4.2.3: Este manual proporciona instrucciones para instalar JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "Manual del programador de JBoss Transactions API 4.2.3: Proporciona información para escribir aplicaciones."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/es-ES/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,23 @@
+# translation of Revision_History.po to
+# Language es-ES translations for JBoss_Transactions_Administrators_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 13:43+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:45+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.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Historique de révision"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12: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: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "Groupe de documentation FF0000 Headgear"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:53+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "Guide d'administration de transactions JBoss API 4.2.3"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "Cet ouvrage est l'édition de JBoss Enterprise Application Platform du Guide des administrateurs de transactions JBoss"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,994 @@
+# translation of Chapter.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-07-08 09:38+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 "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"A part veiller à ce que le système soit exécuté normalement, on n'a pas besoin d'une administration continue pour le logiciel JBoss Transactions. "
+"On doit, cependant, noter les points suivants:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr "L'implémentation actuelle du système JBoss TA n'offre aucune protection des données et pas de sécurité. Les objets stockées dans la base de données d'objets JBoss Transactions, sont (typiquement) la propriété de l'utilisateur qui a exécuté l'application qui les a créés. Les installations Object Manager et Object Store ne tentent pas d'appliquer la protection, même si limitée, offerte par Unix/Windows. Il n'y a pas de vérification des ID du groupe ou des utilisateurs au sujet de l'accès aux objets, que ce soit pour lecture ou pour écriture."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr "Les objets persistants créés dans la base de données Objet Store demeurent à cet endroit à moins que la méthode de destruction du StateManager soit invoquée sur l'objet ou bien que quelque programme d'application ne les efface explicitement. Cela signifie que l'Object Store accumule des informations superflues (issues principalement des phases de test ou de développement d'applications). A présent, nous ne possédons pas d'installation pour la récupération de ces informations superflues. De plus, nous n'avons pas résolu le problème des références ambigues. C'est à dire qu'un objet persistant, A, pourrait avoir hébergé un Uid pour un autre objet persistant, B, sous une forme de représentation passive sur un disque. Rien ne peut empêcher une application d'effacer B, même si A contient toujours une référence qui s'y rapporte. Quand A est activé par la suite, et tente d'accéder à B, une erreur d'exécution surgit."
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr "Il n'existe actuellement pas de prise en charge pour le contrôle de version d'objets ou de la reconfiguration des bases de données dans le cas de changements de structure de classe. Il s'agit d'un domaine de recherche complexe que nous n'avons pas encore traité. A présent, si vous changez la définition d'une classe d'objets persistants, vous serez complètement responsable de veiller à ce que les instances existantes des objets de l'Object Store soient convertis à la nouvelle représentation. Le logiciel des transactions JBoss ne peut ni détecter, ni corriger les références vers des anciens états d'objet par des nouvelles versions d'opérations et vice versa."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "La gestion des bases de données Object Store est d'une importance critique pour le service de transaction."
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "Gestion d'ObjectStore"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr "Dans l'installation du service de transactions, la base de données objet est mise à jour régulièrement au fur et à mesure des transactions, ou quand des objets transactionnels pour Java sont utilisés. Dans un environnement qui ne connaît pas de mises en échec, les seuls états d'objet qui doivent résider dans la base de donnée-objets, sont ceux qui représentent des objets créés dans Objets Transactionnels pour Java API. Cependant, en cas d'échecs, les journaux des transactions doivent demeurer dans la mémoire objet jusqu'à ce que les moyens de recouvrement en cas de crash résolvent les transactions qu'ils représentent. Ainsi, il est très important que les contenus des bases de données-objet ne soient pas supprimées facilement, car il serait impossible de résoudre les opérations précaires. De plus, si plusieurs utilisateurs partagent la même base de donnée-objet, il faut qu'ils le réalisent et qu'ils n'effacent pas les contenus Objet Store,!
  assumant qu'il s'agisse d'une ressource exclusive."
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "Information sur le temps d'exécution JBoss Transactions"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr "Chaque module compris dans JBoss Transactions comporte une classe intitulée Info. Ces classes procurent toutes une méthode simple toString qui retourne un document XML, représentant les informations de configuration pour ce module. Donc, par exemple:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "Administration du recouvrement en cas d'échec"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr "Le sous-système de recouvrement des transactions JBoss assurera que les résultats d'une transaction soient appliqués uniformément à toutes les ressources affectées par cette transaction, même si aucun des processus d'application ou la machine hôte ne se plantent ou perdent la connexion réseau. Dans un cas de plantage de machine (système) ou d'échec de réseau, le recouvrement n'aura pas lieu si le système ou le réseau ne sont pas restaurés, mais l'application d'origine n'a pas besoin d'être relancée - la responsabilité du recouvrement est déléguée au Gestionnaire de recouvrement (voir ci-dessous). Le recouvrement suite à un échec, repose sur le fait que l'information, à propos de la transaction et les ressources qui y sont attachées, survive l'échec et soit accessible par la suite: cette information est contenue dans ActionStore, qui fait partie d'ObjectStore."
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "Si l'ObjectStore est détruit ou modifié, les chances de recouvrement sont compromises."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr "Jusqu'à ce que les procédures de recouvrement soient terminées, les ressources affectées par la transaction en progrès au moment de la mise en échec, peuvent être inaccessibles. Pour les ressources de banques de données, cela peut être rapporté sous forme de tables ou de rangées contenues par \"in-doubt transactions\" (transactions précaires). Pour les TransactionalObjects des ressources Java, toute tentative d'activer l'Objet Transactionnel (tout comme toute tentative d'obtenir un verrou) échouera."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Le gestionnaire de recouvrement"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"Le sous-système de recouvrement, en cas d'échec des transactions JBoss, repose sur le fait que le processus du gestionnaire de recouvrement autonome doit être en cours d'exécution pour chaque ObjectStore (normalement un processus par noeud de réseau exécutant des applications JBoss Transactions). Le fichier du gestionnaire de recouvrement (RecoveryManager) est localisé dans le fichier jar arjunacore situé dans le paquetage <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. Pour démarrer le gestionnaire de recouvrement, actionner la commande suivante:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "Si la balise <literal>-test</literal> est utilisée en même temps que le gestionnaire de recouvrement, on verra apparaître un message \"Ready\" (prêt) au moment du démarrage, par ex., "
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Configurer le gestionnaire de recouvrement"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"Le gestionnaire de recouvrement lit les propriétés définies dans le fichier <filename>arjuna."
+"properties</filename> et lit également le fichier de propriété <filename>RecoveryManager.properties</filename>, à partir du même répertoire que celui où il a trouvé dans le fichier des propriétés arjuna. Une saisie de propriété dans le fichier de propriétés du gestionnaire de recouvrement remplacera toute saisie pour cette même propriété dans le fichier de base de propriétés de TransactionService. La plupart des saisies sont spécifiques au gestionnaire de recouvrement."
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr "Une version par défaut de <filename>RecoveryManager.properties</filename> est disponible dans la distribution - qui peut être utilisée sans modifications, excepté peut-être les champs de suivi de débogage (voir ci-dessous, Sortie). Le reste de cette section traite des problèmes de configuration des propriétés à des valeurs différentes (en ordre d'apparence dans la version par défaut du fichier)."
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Sortie"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr "Il est possible que les installations s'attendent à obtenir une certaine forme de sortie du gestionnaire de gestion, en vue de proposer une trace d'enregistrement du genre d'activité de recouvrement qui a eu lieu. Le gestionnaire de recouvrement utilise le mécanisme de traçage de journalisation CLF (Arjuna Common Logging Framework) qui procure un haut niveau d'interface cachant les différences qui existent entre les systèmes de journalisation API comme Jakarta log4j ou JDK 1.4. CLF dirige tout enregistrement par l'infrastructure Apache Commons Logging et la configuration est sensée avoir lieu à travers cette infrastructure."
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr "Pour les applications CLF, effectuez les appels de journalisation sur les objets d'enregistrement chronologique. Les objets d'enregistrement peuvent opérer à différents niveaux et décider s'ils sont intéressés par tel ou tel message. Chaque message de journalisation est associé à un certain niveau de journalisation, qui exprime l'importance et l'urgence d'un message de journalisation. Les configurations possibles sont DEBUG, INFO, WARN, ERROR et FATAL. Des niveaux bien définis sont ordonnés en fonction de leurs valeurs entières relatives comme suit: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr "Le CLF offre une extension pour filtrer les messages de journalisation suivant une granularité plus fine que celle qu'une application puisse définir. Ainsi, lorsqu'un message log est présenté par l'enregistreur chronologique au niveau DEBUG, on peut ajouter des conditions supplémentaires pour déterminer si le message de journalisation est activé ou non."
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "Ces conditions s'appliquent si et seulement si le niveau DEBUG est activé et si la demande de journalisation de l'application précise la granularité de débogage."
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "Une fois activée, la fonction de débogage est filtrée conditionnellement sur trois variables:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "Niveau de débogage: c'est quand la demande de journalisation associée à un niveau de débogage est générée par ex. de méthodes de base ou constructeurs."
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "Niveau de visibilité: la visibilité du constructeur, de la méthode, etc. qui génèrent le débogage."
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Facility code: par exemple, le paquetage ou le sous-module dans lequel le débogage est généré, par ex., la base de donnée objet."
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr "D'après toutes ces variables, le CLF définit trois interfaces. Un produit particulier peut implémenter ses propres classes suivant sa granularité plus fine. JBoss Transactions utilise le niveau de débogage par défaut et le niveau de visibilité par défaut offert par CLF, mais détermine son propre code de fonction. JBoss Transactions utilise le niveau par défaut assigné à ses objets d'enregistreurs chronologiques (DEBUG). Cependant, il utilise des fonctionalités de débogage plus raffinées pour activer ou désactiver les messages de débogage. Des valeurs de débogage plus raffinées, utilisées par les transactions JBoss, sont définies ci-dessous:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Niveau de débogage - JBoss Transactions utilise les valeurs par défaut déterminées dans la classe <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING:  No diagnostics. Un objet de journalisation assigné à cette valeur, ignore toutes les demandes de débogage."
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Full diagnostics. Un objet de journalisation assigné à cette valeur autorise toutes les demandes de débogage si le 'facility code' et le niveau de visibilité correspondent à ceux qui sont autorisés par l'enregistreur chronologique."
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Les valeurs de débogage supplémentaires sont:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnostiques de la part des constructeurs."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnostiques au niveau des finalizers."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnostiques de la part des constructeurs et des finalizers."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS: Diagnostiques par les fonctions."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnostiques par les opérateurs, comme les equals."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnostiques par les fonctions et les opérations."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnostiques par les opérations non-triviales."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnostiques par les fonctions triviales."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnostiques par les opérations triviales, et les opérateurs."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnostiques par les opérations triviales."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Niveau de visibilité– JBoss Transactions utilise les valeurs par défaut définies dans la classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  Pas de diagnostique"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  seulement par méthodes privées."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  seulement par méthodes protégées."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   seulement par méthodes publiques."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+msgstr "VIS_JBoss_Transactions_Administrators_Guide   seulement par méthodes de paquetage."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Diagnostique complet"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Facility Code – JBoss Transactions utilise les valeurs suivantes définies dans la classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (module de base d'action atomique)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (classes de gestion des états (tampons))."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (enregistrements des abstracts)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (implementations de bases de données-objet)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (gestion des états et StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (classes d'implémentation de la mémoire partagée)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (classes générales)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr "FAC_CRASH_RECOVERY = 0x00000800 (trace détaillée du module de recouvrement en cas de plantage et des classes)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (classes de threading)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (prise en charge JDBC 1.0 et 2.0)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (sortie normale pour gestionnaire de recouvrement en cas de plantage)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "Pour garantir les sorties qui conviennent, il faut configurer certaines propriétés de débogage plus raffinées, particulièrement dans le fichier <filename>CommonLogging.xml</filename>, pour activer les messages de journalisation émis par le module de JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr "Les messages qui décrivent le démarrage et le comportement périodique du RecoveryManager (gestionnaire de recouvrement) sont des sorties au niveau INFO. Si on souhaite d'autre traçage de débogage, le niveau de débogage le plus raffiné devra être déterminé en fonction. Par exemple, la configuration suivante,dans CommonLogging.xml, active tous les messages de débogage liés au protocole de recouvrement en cas de plantage et issus par le module JBoss Transactions."
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "Deux objets de journalisation sont fournis, un objet gère les messages l18N et le second ne les gère pas."
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "Configurer les messages de recouvrement normaux au niveau INFO permet au RecoveryManager de produire un niveau modéré de rapport de journalisation. Si il ne se passe rien, il devra rapporter chaque saisie dans chaque module pour chaque tentative périodique. Pour désactiver les messages INFO produits par le Gestionnaire de recouvrement, le niveau de journalisation pourrait être configuré au plus haut niveau: ERREUR. Configurer le niveau à ERREUR implique que le RecoveryManager ne produira que des messages d'erreur, des messages d'avertissement ou d'erreurs fatales."
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Recouvrement périodique"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"Le gestionnaire de recouvrement balaye les ObjectStores et autres locations d'information, dans la recherche de ressources et de transactions qui requièrent ou pourraient requérir un recouvrement. Le processus de balayage et de recouvrement sont opérés par les modules de recouvrement, (instances de classes qui implémentent l'interface com.arjuna.ats."
+"arjuna.recovery.RecoveryModule), comportant chacun une responsabilité pour une catégorie particulière de transaction ou de ressource. L'ensemble des modules de recouvrement est chargé dynamiquement, en utilisant des propriétés que l'on peut trouver dans le fichier de propriétés du RecoveryManager."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"L'interface a deux méthodes: <literal>periodicWorkFirstPass</literal> et "
+"<literal>periodicWorkSecondPass</literal>. A un certain interval (défini par la propriété <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), le RecoveryManager fera appel à la première méthode FirstPass sur chaque propriété, attendra un petit moment (défini par la propriété <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), puis fera appel la seconde méthode SecondPass pour chaque module. Normalement, avec la première méthode, FirstPass, le module balaye ( par ex. une partie pertinente de l'ObjectStore) pour trouver des transactions ou des ressources douteuses (par ex. à mi-chemin vers le processus de validation). Avec la seconde, SecondPass, si les doutes subsistent, il est possible que le processus d'application de départ soit planté et que cet élément soit candidat au recouvrement."
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"Une tentative du RecoveryManager de recouvrement de transaction en cours de dans le(s) processus d'origine, est susceptible d'endommager la cohérence. Par conséquent, les modules de recouvrement utilisent un mécanisme (implémenté dans le paquetage <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname>) pour vérifier sur le processus d'origine est toujours actif, et si la transaction progresse toujours. Le RecoveryManager ne continue le processus de recouvrement que si le processus d'origine est terminé, ou, s'il est toujours actif, il patientera que la transaction soit terminée. (Si une processus de serveur ou une machine échouent, mais que le processus d'initiation de la transaction subsiste, la transaction s'achèvera, en générant normalement un avertissement. Le recouvrement d'un telle transaction est du ressort du RecoveryManager)."
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"Il est très important de configurer les intervals périodiques correctement. Le temps d'itération total correspondra à la somme des <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> et à la durée qu'il faut pour balayer les zônes de stockage et tenter le recouvrement de toutes transactions précaires, pour tous les modules de recouvrement. Le temps de tentative de recouvrement peut inclure les délais de connexion au moment des tentatives de communication avec les processus ou des machines qui sont plantées ou qui sont inaccessibles (ce qui explique pourquoi il existe des mécanismes dans le système de recouvrement pour éviter d'essayer de recouvrir la même transaction indéfiniement). Le temps d'itération total va affecter la durée pendant laquelle une ressource pourra demeurer accessible suite à un échec - <literal>periodicRecoveryPeriod</literal> devra être configuré en fonction ( la valeur par défaut est de 120 secondes). Le <literal>recoveryBackoffPeriod</literal> peut, comparativement, être court ( la valeur par défaut est de 10 secondes) - son but est surtout de réduire le nomb!
 re de transactions candidates au recouvrement et qui donc requièrent un appel au processus d'origine pour vérifier si elles sont toujours en cours."
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "Dans les versions précédentes de JBoss Transactions, il n'y avait pas de mécanisme de contact, et la période de backoff devait être assez longue pour éviter d'intercepter des transactions en cours. A partir de la version 3.0, ce risque a disparu."
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"On fournit deux modules de recouvrement ( les implémentations d'interfaces <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname>) avec JBoss Transactions, prenant en charge plusieurs aspects de recouvrement de transactions, y compris le recouvrement JDBC. Il est possible pour les utilisateurs avancés de créer leurs propres modules de recouvrement et de les enregistrer dans le RecoveryManager. Les modules de recouvrement sont enregistrés dans le RecoveryManager en utilisant les propriétés qui commencent par “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. Elles seront invoquées à chaque "
+"Pass du recouvrement périodique en suivant l'ordre des noms de propriété - il sera donc possible de prédire l'ordonnancement ( mais noter que l'échec d'un processus d'application peut avoir lieu pendant qu'une Pass de recouvrement périodique est en cours). Les paramètres d'extension de recouvrement par défaut sont les suivants:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Suppression des saisies obsolètes"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"L'opération de recouvrement du sous-système entraînera la saisie de certaines informations dans l'ObjectStore qui ne seront pas normalement supprimées. Le RecoveryManager contient une fonction de balayage de ces informations et pour supprimer celles qui sont trop anciennes. Les opérations de balayage et de suppression sont conduites par les implémentations de l'interface <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname>. Les implémentations de cette interface sont chargées en donnant un nom de classe à la valeur de la propriété dont le nom commence par <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. Le RecoveryManager appelle la méthode <command>scan()</command> pour chaque implémentation Expiry Scanner (balayage expiré) chargée, dans un intervalle déterminé par la propriété <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. Cette valeur est donnée en heures - la valeur par défaut est 12. Une valeur de zéro pour <classname>expiryScanInterval</classname> supprimera tout Expiry Scanning (balayage expiré). Si la valeur fournie est positive, le premier balayage aura lieu au démarrage du RecoveryManager, si la valeur est négative, le premier balayage sera retardé jusqu'à l'apparition du premier intervalle (en utilisant la valeur absolue)."
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Sortes d'éléments balayés pour expiration:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager items : l'un d'entre eux est créée par le processus d'application qui utilise JBoss Transactions - ils contiennent l'information qui autorise le RecoveryManager de déterminer si le processus qui initie la transaction est toujours actif, et quel est le statut de transaction. Leur temps d'expiration est déterminé par la propriété <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (en heures - la valeur par défaut est 12, zéro signifiant n\"expire jamais). Le temps d'expiration ne devrait jamais être plus élevé que la durée de vie d'un seul processus utilisant-JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Leurs propriétés Expiry Scanner sont:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Erreurs et exceptions"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "Dans cette section, nous devrons couvrir les types d'erreur et les exceptions qui pourraient être envoyées ou reportées pendant une application transactionelle ou bien tenter de donner des indications sur leurs causes."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr "NO_MEMORY: l'application est à cours de mémoire (<classname>OutOfMemoryError</classname>) et JBoss Transactions a tenté de faire le nettoyage (en exécutant le nettoyeur) avant de renvoyer l'exception. C'est probablement un problème transitoire et retenter l'invocation devrait fonctionner."
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr "com.arjuna.ats.arjuna.exceptions.FatalError: apparition d'une erreur qui entraîne la fermeture du système de transactions. Avant l'apparition de cette erreur, le service de transaction devra s'assurer que toutes les transactions en cours sont redressées. Si l'application est coincée, elle doit mettre de l'ordre et sortir. Si on tente de continuer les opérations, on peut endommager la cohérence de l'application."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr "com.arjuna.ats.arjuna.exceptions.LicenceError: tentative d'utiliser le service de transaction d'une manière non cohérente par rapport à la licence en cours. Le service de transaction ne permettra pas davantage de progrès pour les nouvelles ou pour les transactions existantes."
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr "com.arjuna.ats.arjuna.exceptions.ObjectStoreError: erreur au moment où le service transaction a tenté d'utiliser la base de données objet. Impossible de progresser davantage."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "Des avertissements de bases de données objet à propos de problèmes d'accès aux états, peuvent survenir au cours d'une exécution normale de recouvrement de plantage. Ceci est le résultat de multiples tentatives concurrentes de tenter un recouvrement sur la même transaction. On peut ignorer ces avertissements."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Sélectionner l'implémentation JTA"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "Deux variantes de l'implémentation JTA sont maintenant proposées et accessibles à travers la même interface. Elles sont les suivantes:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr "Un JTA purement local, qui permet aux transactions JTA non distribuées d'être exécutées. C'est la seule version disponible avec le produit JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "Un JTA distant basé-CORBA, qui permet d'exécuter les transactions JTA distribuées. Cette version est seulement disponible avec le produit ArjunaJTS et requiert un CORBA ORB supporté."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "ces deux implémentations sont totalement compatibles avec le pilote transactionnel JDBC qui est fourni avec JBoss Transactions."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "En vue de sélectionner une implémentation JTA locale, il est nécessaire de procéder aux étapes suivantes:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"veillez à ce que la propriété <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> soit configurée ainsi <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"Veillez à ce que la propriété <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> soit configurée ainsi <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "ces paramètres sont les valeurs par défaut des propriétés et ne pourront pas être spécifiées si l'implémentation locale est requise."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,38 @@
+# translation of Feedback.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:58+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
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Commentaires"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr "Si vous décelez une erreur dans ce guide, ou si vous avez des suggestions pour améliorer ce manuel, faites-nous en part! Vous pouvez soumettre un rapport dans <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> dans la section Produit: JBoss Enterprise Application Platform, Version: <replaceable>&lt;version&gt;</replaceable>, Composant: <emphasis>Doc</emphasis>. Si vous avez une suggestion pour améliorer la documentation, essayez d'être aussi précis que possible. Si vous avez décelé une erreur, n'oubliez pas de préciser le numéro de la section et de transcrire un extrait de texte avoisinant, de façon à ce que nous puissions la retrouver facilement."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,127 @@
+# translation of Preface.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-07-07 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
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Préface"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "Contenu de ce guide"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr "Le guide d'administration contient des informations sur la façon d'administrer les transactions JBoss API 4.2.3."
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Audience"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Ce guide est surtout utile aux ingénieurs responsables de l'administration des installations JBoss Transactions API 4.2.3."
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Prérequis"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Pour pouvoir administrer les transactions JBoss, il faut tout d'abord comprendre qu'il dépend de ArjunaCore pour de nombreuses fonctionnalités de transactions. Il est donc important de lire le guide d'administration ArjunaCore avant de tenter d'administrer les transactions JBoss."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organisation"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Ce guide comprend les chapitres suivants:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "Chapter 1, Administration des transactions JBoss: décrit comment administrer les transactions JBoss, principalement en sélectionnant une variante de l'implémentation JTA purement locale ou distante (permettant les transactions distribuées)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Documentation supplémentaire"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr "En plus de ce guide, les guides suivants sont disponibles dans la gamme de documentation sur les transactions JBoss API 4.2.3:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "Les notes de mise à jour des transactions JBoss API 4.2.3: offrent les dernières informations à propos des transactions JBoss API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "Guide d'installation des transactions JBoss API 4.2.3: Ce guide procure des instuctions pour installer JBoss Transactions API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "Guide du programmeur des transactions JBoss API 4.2.3: procure des informations sur les applications écriture."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/fr-FR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to French
+# Language fr-FR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Corina Roe <croe at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-30 12:59+1000\n"
+"Last-Translator: Corina Roe <croe at redhat.com>\n"
+"Language-Team: French <i18 at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 11:16+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "リビジョン履歴"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 11:17+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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 "FF0000 Headgear Documentation Group"
+msgstr "FF0000 Headgear Documentation Group"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# translation of Book_Info.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 11:17+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "JBoss Transactions API 4.2.3 管理ガイド"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise Application Platform"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+"本ガイドは JBoss Enterprise Application Platform 版の JBoss "
+"Transactions 管理ガイドになります。"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1195 @@
+# translation of Chapter.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-05-19 13:04+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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 "Introduction"
+msgstr "はじめに"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"ランタイムシステムが正常に実行していることを確認する他、 JBoss Transactions "
+"ソフトウェアには継続的に行う必要のある管理が若干あります。 以下にいくつか注意"
+"事項を記します。"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+"JBoss TA の現在の実装はデータの保護やセキュリティは提供しません。 JBoss "
+"Transactions オブジェクトストアに格納されるオブジェクトは (一般的に) それを作"
+"成したアプリケーションの実行を行ったユーザーに所有されます。 Object Store お"
+"よび Object Manager の機能は、 Unix/Windows が提供する限定形式の保護であって"
+"もまったく実施しません。 読み取りまたは書き込みいずれかのためオブジェクトに行"
+"われるアクセスに関してユーザーまたはグループの ID によるチェックはありませ"
+"ん。"
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+"クラスの構成が変更になった場合、 データベースの再構成やオブジェクトのバージョ"
+"ン管理に関するサポートは現在ありません。 これは対処していない複雑な研究分野に"
+"なります。 現時点では、 永続オブジェクトのクラスの定義を変更する場合は、 "
+"Object Store 内のオブジェクトの既存インスタンスが新しい表現に変換されるかは確"
+"約できませんので必ず確認を行ってください。 JBoss Transactions ソフトウェアは"
+"新しいオペレーションバージョンで旧オブジェクトの状態への参照を検出することも"
+"修正することもできません、 またこの逆もできません。"
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+"オブジェクトストア管理はトランザクションサービスにとって非常に重要となりま"
+"す。"
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "ObjectStore 管理"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"トランザクションサービスのインストール内で、 オブジェクトストアはトランザク"
+"ションが作成されるとき、 または Java 用の Transactional Objects が使用される"
+"場合必ず更新されます。 障害なしの環境では、 オブジェクトストア内に常駐すべき"
+"オブジェクトの状態のみが Java API の Transactional Objects で作成されるオブ"
+"ジェクトを表現するものとなります。 ただし、 障害が発生すると、クラッシュリカ"
+"バリの機能が表しているトランザクションを解決するまでトランザクションログはオ"
+"ブジェクトストア内に残る可能性があります。 このため、 オブジェクトストアの内"
+"容は十分な注意を払わずに削除されると疑わしいトランザクション内での解決が不可"
+"能となるため、 非常に重要です。 また、 複数のユーザーが同じオブジェクトストア"
+"を共有する場合、 ユーザーはこれをよく認識してリソースは共有されないものとして"
+"オブジェクトストアの内容を削除しないようにすることが重要です。"
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "JBoss Transactions ランタイム情報"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+"JBoss Transactions を構成する各モジュールは Info と呼ばれるクラスを持っていま"
+"す。 これらのクラスはすべて単一の toString メソッドを提供し、 そのモジュール"
+"用の設定情報を表す XML ドキュメントを返します。 たとえば、"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "障害リカバリ管理"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"JBoss Transactions の障害リカバリサブシステムは、 アプリケーションプロセスや"
+"それをホストしているマシンのいずれかがクラッシュしたりネットワーク接続を失っ"
+"た場合にでも、 トランザクションの結果がトランザクションにより影響されるすべて"
+"のリソースに対して常に必ず適用されるようにします。 マシン (システム) のクラッ"
+"シュやネットワーク障害が発生した場合、 そのシステムまたはネットワークが回復さ"
+"れるまでリカバリは行われませんが、 オリジナルのアプリケーションは起動される必"
+"要はありません。 リカバリ処理は Recovery Manager のプロセスに委任されます (以"
+"下を参照)。 傷害後のリカバリにはトランザクションとリソースに関する情報が障害"
+"を逃れて存続しその後アクセス可能であることが要されます。 この情報は "
+"ActionStore に維持され、 これは ObjectStore の一部になります。"
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+"ObjectStore が破棄または変更されると、 リカバリができなくなる可能性がありま"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"リカバリの手順が完了するまで、 障害発生時に実行中だったトランザクションによっ"
+"て影響を受けるリソースはアクセスできない可能性があります。 データベースのリ"
+"ソースについては、 “in-doubt transactions” で維持される表または列として報告さ"
+"れる可能性があります。 Java の TransactionalObjects リソースについては、 "
+"Transactional Object の起動の試行が失敗します (ロック取得試行時)。"
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"JBoss Transactions の障害リカバリサブシステムは、 スタンドアローンの "
+"Recovery Manager プロセスが各 ObjectStore (一般的に JBoss Transactions アプリ"
+"ケーションを実行しているネットワーク上の各ノードに 1 つ) に対して実行している"
+"必要があります。 RecoveryManager ファイルは <classname>com.arjuna.ats.arjuna."
+"recovery.RecoveryManager</classname> パッケージ内の arjunacore jar ファイルに"
+"あります。 Recovery Manager を起動するには次のコマンドを実行します。"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+"Recovery Manager で <literal>-test</literal> フラグが使用される場合、 初期化"
+"すると “Ready” メッセージが表示されます。"
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Recovery Manager を設定する"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"RecoveryManager は <filename>arjuna.properties</filename> ファイルに定義され"
+"るプロパティを読み込み、 また arjuna プロパティファイルを発見した同じディレク"
+"トリから <filename>RecoveryManager.properties</filename> プロパティファイルを"
+"読み込みます。 RecoveryManager プロパティファイル内のプロパティのエントリはメ"
+"インの TransactionService プロパティファイル内の同じプロパティのエントリを上"
+"書きします。 ほとんどのエントリは Recovery Manager 固有となります。"
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"<filename>RecoveryManager.properties</filename> のデフォルトバージョンはディ"
+"ストリビューションに同梱されます。 おそらくデバッグ追跡フィールド (以下参"
+"照、 「出力」) 以外は変更することなく使用できます。 これ以降、 本セクションで"
+"はプロパティを他の値に設定する上での問題について説明していきます (ファイルの"
+"デフォルトバージョンで表されている順序)。"
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "出力"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"どのようなリカバリアクティビティが行われたのかの記録を提供するために、 インス"
+"トールが RecoveryManager からの出力をなんらかの形式で必要とする可能性がありま"
+"す。 RecoveryManager は Arjuna Common Logging Framework (CLF) によって提供さ"
+"れるログ追跡メカニズムを使用します。 これは Jakarta log4j や JDK 1.4 ロギン"
+"グ API など既存のロギング API 間に存在する違いを隠す高度なレベルのインター"
+"フェースを提供します。 CLF は Apache Commons Logging フレームワーク経由ですべ"
+"てのロギングをインダイレクトするので、 設定はそのフレームワークを通して発生す"
+"るとみなされます。"
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"CLF ではアプリケーションはロッガーオブジェクトでロギングのコールを作成しま"
+"す。 ロッガーはロギングの Levels を使って特定のログメッセージに興味があるかを"
+"決定することができます。 各ログメッセージはログの Level を関連付け、 これによ"
+"りログメッセージの重要性や緊急性を与えます。 可能な Log Level のセットは "
+"DEBUG、 INFO、 WARN、 ERROR、 FATAL になります。 定義される Level は次のよう"
+"にその整数値に従って順序付けられます: DEBUG &lt; INFO &lt; WARN &lt; ERROR "
+"&lt; FATAL。"
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"CLF はアプリケーションが定義する可能性があるより詳細な粒度に従ってロギング"
+"メッセージのフィルタを行うため拡張子を提供します。 これは、 ログメッセージが "
+"DEBUG レベルでロッガーに提供される場合、 ログメッセージが有効かどうかを判別す"
+"るため指定できる追加の条件になります。"
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+"これらの条件は、 DEBUG レベルが有効でアプリケーションによって実行されるログ要"
+"求がデバッグの粒度を指定している場合にのみ適用されます。"
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+"有効になると、 Debugging は次の 3 つの変数の条件付きでフィルタされます。"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+"Debugging レベル: DEBUG Level 月のログ要求が生成される場所です。 例えば、 コ"
+"ンストラクタや基本的なメソッド。"
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+"Visibility レベル: デバッグを生成するコンストラクタ、 メソッドなどの可視性で"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+"Facility コード: たとえば、 デバッグが生成される場所内のパッケージやサブモ"
+"ジュールです。 例、 オブジェクトストアなど。"
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"これらの変数にしたがって、 CLF は 3 つのインターフェースを定義します。 特定の"
+"プロダクトがそれ自体の詳細な粒度にしたがいそれ自体のクラスを実装することがで"
+"きます。 JBoss Transactions はデフォルトの Debugging レベルおよび CLF によっ"
+"て提供されるデフォルトの Visibility レベルを使用しますが、 それ自体の "
+"Facility コードは定義します。 JBoss Transactions はそのロッガーオブジェクト "
+"(DEBUG) に割り当てられるデフォルトのレベルを使用します。 ただし、 デバッグ"
+"メッセージの無効化または有効化にはより詳細なデバッグ機能を使用します。 JBoss "
+"Transactions で使用される詳細なデバッグの値は以下のように定義されます。"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+"Debugging レベル – JBoss Transactions はクラス <classname>com.arjuna.common."
+"util.logging.DebugLevel</classname> で定義されるデフォルトの値を使用します。"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+"NO_DEBUGGING: 診断なしです。 この値を付けて割り当てられるロッガーオブジェクト"
+"はすべてのデバッグ要求を破棄します。"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+"FULL_DEBUGGING: 完全診断です。 この値を付けて割り当てられるロッガーオブジェク"
+"トは、 facility コードと visibility レベルがそのロッガーで許可されるそれらと"
+"一致する場合にすべてのデバッグ要求を許可します。"
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "追加のデバッグ値は次の通りです。"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: コンストラクタからの診断です。"
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  ファイナライザからの診断です。"
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: コンストラクタとファイナライザからの診断です。"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS: 関数からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS: イコールなどの演算子からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: 関数と演算からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: non-trivial の全演算からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS: trivial 関数からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: trivial 演算と演算子からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  すべての trivial 演算からの診断です。"
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Visibility レベル – JBoss Transactions はクラス <classname>com.arjuna.common."
+"util.logging.VisibilityLevel</classname> で定義されるデフォルトの値を使用しま"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE: 診断なしです。"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE : プライベートメソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  保護メソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC  パブリックメソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:141
+#, fuzzy, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr "VIS_PUBLIC  パブリックメソッドからのみです。"
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  完全診断です。"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+"Facility コード – JBoss Transactions はクラス <classname>com.arjuna.common."
+"util.logging.VisibilityLevel</classname> で定義される次のような値を使用しま"
+"す。"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (アトミックアクションコアモジュール)。"
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (状態管理 (バッファ) クラス)。"
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (抽出記録)。"
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (オブジェクトストア実装)。"
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (状態管理と StateManager)。"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (共有メモリ実装クラス)。"
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (汎用クラス)。"
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (クラッシュリカバリモジュールとクラスの詳細な"
+"とレース)。"
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (スレッディングクラス)。"
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 および 2.0 サポート)。"
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (クラッシュリカバリマネージャの通常出力)。"
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+"適切な出力を確認するため、 <filename>CommonLogging.xml</filename> ファイルで"
+"明示的に詳細なデバッグプロパティをいくつか設定して JBoss Transactions モ"
+"ジュールで発行されるロギングメッセージを有効にする必要があります。"
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+"RecoveryManager によって作成される開始と定期的な動作を説明しているメッセージ"
+"は INFO レベルを使用する出力です。 他のデバッグトレーシングが必要な場合は、 "
+"詳細なデバッグレベルを適切に設定されなければなりません。 たとえば、 次の設定"
+"の CommonLogging.xml で、 Crash Recovery プロトコルに関連し JBoss "
+"Transactions モジュールによって発行されるデバッグメッセージはすべて有効にしま"
+"す。"
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+"2 つのロッガーオブジェクトが提供され、 1 つは I18N メッセージを管理し、 2 番"
+"目は管理しません。"
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+"通常のリカバリメッセージを INFO レベルに設定すると RecoveryManager が適度なレ"
+"ポーティングレベルを生成することができるようになります。 何も行われていなけれ"
+"ば、 エントリをそれぞれの定期的なパスの各モジュールに報告するだけです。 "
+"Recovery Manager によって生成される INFO メッセージを無効にするには、 ロギン"
+"グレベルをより高いレベルの ERROR に設定すると行うことができます。 レベルを "
+"ERROR に設定するということは RecoveryManager が error、 warning、 fatal の"
+"メッセージしか生成しないということになります。"
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "定期的なリカバリ"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"RecoveryManager は ObjectStore および情報のその他の場所をスキャンし、 リカバ"
+"リを要するまたは要する可能性があるトランザクションとリソースを探します。 この"
+"スキャンとリカバリ処理は、 トランザクションまたはリソースの特定カテゴリに対す"
+"る処理責務を有する各リカバリモジュールによって行われます、 (com.arjuna.ats."
+"arjuna.recovery.RecoveryModule インターフェースを実装するクラスのインスタン"
+"ス)。 使用されるリカバリモジュールのセットは動的にロードされ、 "
+"RecoveryManager property ファイルにあるプロパティを使用します。"
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"インターフェースには <literal>periodicWorkFirstPass</literal> と "
+"<literal>periodicWorkSecondPass</literal> の 2 つのメソッドがあります。 ある"
+"間隔で (プロパティ <classname>com.arjuna.ats.arjuna.recovery."
+"periodicRecoveryPeriod</classname> によって定義される)、 RecoveryManager は各"
+"プロパティで 1 番目のパスをコールし、 少しの期間 (プロパティ <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname> によって定義され"
+"る) 待機してから、 各モジュールの 2 番目のパスをコールします。 一般的には、 "
+"1 番目のパスでモジュールは in-doubt (つまり、 コミットメントプロセスの途中) "
+"のリソースまたはトランザクションを検索するためスキャンを行います (例、 "
+"ObjectStore の関連部分)。 2 番目のパスで、 同じアイテムのいずれかがいまだ in-"
+"doubt の場合、 オリジナルのアプリケーションプロセスがクラッシュしていてそのア"
+"イテムがリカバリの候補である可能性があります。"
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"RecoveryManager によるオリジナルのプロセスでいまだ進行中のトランザクションの"
+"リカバリ試行は整合性をブレイクする可能性があります。 これに応じて、 リカバリ"
+"モジュールはオリジナルのプロセスがいまだ生きているのかどうか、 またトランザク"
+"ションがいまだ進行中であるのかどうかをチェックするメカニズムを使用します "
+"(<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> パッケージ内に実装される)。 RecoveryManager はオリジナルのプロセス"
+"がなくなってしまった場合、 あるいはいまだ生きているときはトランザクションが完"
+"了した場合にのみ開始されます。 (サーバーのプロセスまたはマシンがクラッシュし"
+"たがトランザクション開始のプロセスが生き残っている場合、 このトランザクション"
+"は完了して通常は警告を生成します。 このようなトランザクションのリカバリが "
+"RecoveryManager の役割となります。)"
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"間隔の期間を適切に設定することが明らかに重要となります。 合計反復時間は全リカ"
+"バリモジュールの <literal>periodicRecoveryPeriod</literal>、 "
+"<literal>recoveryBackoffPeriod</literal>、 およびスキャンをストアし発見した "
+"in-doubt トランザクションのリカバリを試行するのにかかる時間の合計になります。"
+"リカバリ試行時間にはクラッシュしたあるいはアクセスできないプロセスやマシンと"
+"の通信試行をしている間の接続タイムアウトも含まれることがあります (これが同じ"
+"トランザクションのリカバリ試行を永久に回避するメカニズムがリカバリシステムに"
+"ある理由です)。 合計反復時間は障害が発生してからリソースがアクセス不能な状態"
+"でいる長さに影響します。 応じて <literal>periodicRecoveryPeriod</literal> を"
+"設定しなければなりません (デフォルトは 120 秒)。 "
+"<literal>recoveryBackoffPeriod</literal> は比較的短時間で構いません (デフォル"
+"トは 10 秒)。 目的は主にリカバリの候補となるためいまだ実行中であるかどうかを"
+"確認するのにオリジナルのプロセスのコールを必要とするトランザクション数を減ら"
+"すことです。"
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+"JBoss Transactions の以前のバージョンでは、 コンタクトメカニズムがなかったた"
+"め空中のトランザクションのキャッチを回避するのに backoff 期間をかなり長くしな"
+"ければなりませんでした。 3.0 からはこのようなリスクがなくなります。"
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"JBoss Transactions には 2 つのリカバリモジュール (<classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> インターフェースの実装) が同梱さ"
+"れ、 JDBC リカバリなど各種のリカバリに対応しています。 上級ユーザーの場合、 "
+"自分のリカバリモジュールを作成して Recovery Manager に登録することが可能で"
+"す。 リカバリモジュールは “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>” で始まるプロパティを使って RecoveryManager に"
+"登録します。 これらはプロパティ名のソート順で定期的なリカバリの各パスで呼び出"
+"されます。 したがって、 "
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "失効エントリの削除"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"サブシステムのリカバリの実施により、 通常のプログレスでは削除されない "
+"ObjectStore 内にエントリがいくつか作成されることになります。 RecoveryManager "
+"にはこれらをスキャンして古いアイテムを削除する機能があります。 スキャンと削除"
+"は <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> イン"
+"ターフェースの実装で行われます。 このインターフェースの実装は <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanner</classname> で始まる名前を持つプロパ"
+"ティの値としてクラス名を与えることでロードされます。 RecoveryManager はプロパ"
+"ティ <classname>com.arjuna.ats.arjuna.recovery.expiryScanInterval</"
+"classname> で確定される間隔でロードされる Expiry Scanner の各実装で "
+"<command>scan()</command> メソッドをコールします。この値は時間単位で与えま"
+"す。 デフォルトは 12 時間です。 <classname>expiryScanInterval</classname> の"
+"値がゼロは失効のスキャンを抑制します。 与えられる値が整数である場合は、 "
+"RecoveryManager が起動したときに最初のスキャンが行われます。 値が負数の場"
+"合、 最初のスキャンは最初の間隔まで遅延されます (絶対値を使用)。"
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "失効のスキャンが行われるアイテムの種類は次の通りです。"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager アイテム: JBoss Transactions を使用する全アプリケー"
+"ションプロセスによってこれらのひとつが作成されます。 RecoveryManager がトラン"
+"ザクションを開始したプロセスがまだ生きているかどうか、 またそのトランザクショ"
+"ン状態を確定できるようにする情報が含まれています。 これらの失効時間はプロパ"
+"ティ <classname>com.arjuna.ats.arjuna.recovery."
+"transactionStatusManagerExpiryTime</classname> で設定されます (時間単位で、 "
+"デフォルトは 12 時間、 0 は失効しないという意味)。 失効時間はいずれの単一 "
+"JBoss Transactions 使用プロセスの寿命より長くなければなりません。"
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "これらの Expiry Scanner プロパティは次の通りです。"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "エラーと例外"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+"本セクションでは、 トランザクショナルアプリケーションの間に投げられたり報告さ"
+"れる可能性のあるエラーや例外のタイプについて説明し、 その原因により起こりそう"
+"な兆候をあげておきます。"
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY: アプリケーションの空きメモリがなくなり "
+"(<classname>OutOfMemoryError</classname> が投げられる)、 JBoss Transactions "
+"が例外を再度投げるまでになんらかのクリーンアップを試行しています (ガーベッジ"
+"コレクションを実行)。 これはおそらく一時的な問題で呼び出しを再試行すると成功"
+"するはずです。"
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""
+
+#~ msgid ""
+#~ "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+#~ msgstr ""
+#~ "VIS_JBoss_Transactions_Administrators_Guide  パッケージメソッドからのみで"
+#~ "す。"

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,38 @@
+# translation of Feedback.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 12:38+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja 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
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "フィードバック"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr "本ガイドに誤植があった場合、 また本ガイドの改善案に関するご意見をお寄せ頂く場合、 <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> より Product: JBoss Enterprise Application Platform、 Version: <replaceable>&lt;version&gt;</replaceable>、 Component: <emphasis>Doc</emphasis> にてご報告頂ければ幸いです。 ドキュメントの改善案についてはできるだけ詳細にお願いいたします。 エラーの報告を頂く場合は、 該当するセクション番号および前後の文脈を含めてお知らせ頂けると発見しやすくなります。"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Preface.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,127 @@
+# translation of Preface.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 13:44+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序文"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "本ガイドに含まれるもの"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr "管理ガイドでは JBoss Transactions API 4.2.3 を管理する方法について説明しています。"
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "対象"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "JBoss Transactions API 4.2.3 のインストールを管理するエンジニアの方に最適なガイドです。"
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "必須条件"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "JBoss Transactions を管理するにはまず JBoss Transactions が多くのトランザクション機能で ArjunaCore に依存していることを理解しておくことが必要になります。 このため ArjunaCore 管理ガイドをよく読んでから JBoss Transactions の管理を開始するのが重要となります。"
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "企業組織"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "本ガイドには以下の章から構成されています。"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "第 1 章、 JBoss Transactions の管理 では JBoss Transactions の管理方法について説明しています。 主に純粋なローカルまたはリモートなど JTA 実装の種類の選択についてです (配信トランザクションの許可)。"
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "追加ドキュメント"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr "本ガイドの他、 次のようなガイドが JBoss Transactions API 4.2.3 ドキュメントセットにあります。"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 Release Notes (リリースノート)、 JBoss Transactions API 4.2.3 に関する最新情報を提供します。"
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 Installation Guide (インストールガイド)、 JBoss Transactions API 4.2.3 のインストール方法について説明しています。"
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "JBoss Transactions API 4.2.3 Programmer’s Guide (プログラマーガイド)、 アプリケーションの記述方法についてのガイダンスになります。"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/ja-JP/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to Japanese
+# Language ja-JP translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Noriko Mizumoto <noriko at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-05-12 00:15+0000\n"
+"PO-Revision-Date: 2008-05-15 12:38+1000\n"
+"Last-Translator: Noriko Mizumoto <noriko at redhat.com>\n"
+"Language-Team: Japanese <fedora-trans-ja at redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

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

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Author_Group.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Author_Group.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Author_Group.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr ""
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Book_Info.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Book_Info.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Chapter.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Chapter.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Chapter.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,933 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid ""
+"Object store management is critically important to the transaction service."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid ""
+"If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr ""
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid ""
+"FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Feedback.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Feedback.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Feedback.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/JBoss_Transactions_Administrators_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Preface.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Preface.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/Preface.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,124 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr ""
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr ""
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr ""

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

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Administrators_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Appendix.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:41+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "Histórico de Revisão"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:42+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "Grupo de Documentação FF0000 Headgear"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:49+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "Guia de Administração API 4.2.3 de Transações JBoss"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "Plataforma de Aplicativo JBoss Enterprise"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "Este livro é uma edição da Plataforma de Aplicativo JBoss Enterprise do Guia de Administradores de Transações JBoss"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1000 @@
+# translation of Chapter.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-19 15:37+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr "Existe uma administração contínua e necessária para o software de transações JBoss, fora a garantia de que o sistema de tempo de execução é efetuado normalmente. No entanto, existem alguns pontos que devem ser mencionados:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr "A implementação presente do sistema JBoss TA não fornece segurança ou proteção de dados. Os objetos armazenados no armazenamento de objeto de Transações JBoss pertencem (tipicamente) ao usuário que roda o aplicativo que os criou. As facilidades do Gerenciador de Objeto e Armazenamento de Objeto não se esforçam em reforçar nem mesmo o formulário limitado de proteção que o Unix/Windows fornece. Não há checagem de IDs de usuário ou grupo no acesso a objetos para tanto a leitura ou gravação."
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr "Os objetos persistentes criados no Armazenamento do Objeto nunca desaparecerão, a não ser que o método StateManager.destroy seja invocado no objeto ou algum programa de aplicativo explícito deletá-los. Isto significa que o Armazenamento de Objeto acumula gradativamente lixo (especialmente durante as fases de teste e desenvolvimento do aplicativo). No momento, não possuimos a facilidade de coleta de lixo automático. Adicionado a isto, não endereçamos o problema de referências de ligação. Isto quer dizer que, um objeto persistente A pode armazenar um Uid de outro objeto persistente B, em sua representação passiva no disco. Não há nada para evitar que um aplicativo delete o objeto persistente B, mesmo que o A possua referência a isto. Na próxima vez em que o A for ativado e tentar acessar o B, um erro de tempo de execução ocorrerá."
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr "Atualmente, não há suporte para o controle de versão de objetos ou reconfiguração de banco de dados, no evento de mudanças de estruturas de classe. Isto é uma área de pesquisa complexa, da qual nós não endereçamos ainda. Caso você mude a definição da classe de objetos persistentes, você será inteiramente responsável em assegurar que instâncias existentes do objeto, no Armazenamento do Objeto, serão convertidas à nova representação. O software de Transações JBoss nunca poderá detectar e nem mesmo corrigir referências para um estado de objeto antigo, pela nova operação."
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "O gerenciamento de armazenamento de objeto é extremamente importante ao serviço de transação."
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "Gerenciamento ObjectStore"
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr "Quando se tratar da instalação do serviço de transação, o armazenamento do objeto é atualizado regularmente toda vez em que as transações são criadas ou toda vez em que os Objetos Transacionais para Java forem usados. Numa falha de ambiente livre, o único objeto que determina o que deve residir com o armazenamento do objeto, são os objetos representantes criados com os Objetos Tradicionais para o Java API. No entanto, se uma falha ocorrer, os logs de transação poderão permanecer num armazenamento de objeto até que as facilidades de recuperação de travamento tenham resolvido as transações que elas representam. Assim como, é bastante importante que os conteúdos do armazenamento do objeto não sejam deletados sem o devido cuidado e atenção, uma vez que isto tornará impossível a resolução de transações suspeitas. Adicionado a isto, caso múltiplos usuários compartilharem o mesmo armazenamento do objeto, será necessário que eles saibam dis!
 to e não deletem simplesmente o conteúdo do armazenamento do objeto, assumindo que isto é um recurso exclusivo."
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "Informação de tempo de execução de Transações JBoss"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr "Cada módulo, do qual compromete as Transações JBoss, possui uma classe chamada Info. Todas estas classes fornecem um único método toString, que retorna um documento XML, representando a informação de configuração para aquele módulo. Por exemplo: "
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "Administração de recuperação da falha"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr "O sub-sistema de recuperação da falha de Transações JBoss irão garantir que os resultados de uma transação serão aplicados constantemente a todos os recursos afetados pela transação, mesmo que qualquer um dos processos de aplicativo, ou a máquina que os hospeda, travar ou perder a conexão da rede. No caso da máquina (sistema) travar ou a rede falhar, a recuperação não tomará lugar até que o sistema ou a rede forem restaurados. Contudo, o aplicativo original não precisa ser restaurado. A responsabilidade da recuperação é delegar o processo Gerenciador de Recuperação (veja abaixo). A recuperação, depois da falha, solicita que a informação sobre a transação e recursos envolvidos sobrevivam a falha e sejam acessíveis mais tarde (esta informação é retida no ActionStore, do qual faz parte do ObjectStore.)"
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "Caso um ObjectStore seja destruído ou modificado, a recuperação talvez não seja disponível."
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"Até que os processos de recuperação sejam completados, os recursos afetados pela transação, que estava em processo no período da falha, poderão tornar-se inacessíveis. Isto poderá ser relatado como tabelas ou filas retidas pelas “in-doubt transactions” (transações suspeitas). A tentativa de ativar o Objeto transacional (como, por exemplo, tentar obter um travamento) falhará para TransactionalObjects "
+"em recursos Java."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "O Gerenciamento de Recuperação"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"O sub-sistema de recuperação de falha de Transações JBoss solicita que o processo Gerenciador de Recuperação stand-alone rode para cada ObjectStore (tipicamente, um para cada nó na rede que está rodando os aplicativos de Transações JBoss). O arquivo RecoveryManager está localizado no arquivo de jarra arjunacore com o pacote <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. Use o seguinte comando para iniciar o Gerenciador de Recuperação:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "Caso o aviso <literal>-test</literal> seja usado com o Gerenciador de Recuperação, será exibida uma mensagem “Ready”, uma vez que isto for inicializado: Por exemplo:"
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "Configurando o Gerenciador de Recuperação"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"O RecoveryManager lê as propriedades definidas no arquivo <filename>arjuna."
+"properties</filename> e, também, lê o arquivo de propriedade <filename>RecoveryManager.properties</filename>, a partir do mesmo diretório como encontrado no arquivo de propriedade arjuna. Uma entrada para uma propriedade no arquivo de propriedades RecoveryManager irá substituir uma entrada para a mesma propriedade no arquivo principal de propriedades TransactionService. A maioria das entradas estão especificadas no Gerenciador de Recuperação. "
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr "A versão padrão do <filename>RecoveryManager.properties</filename> é fornecida com a distribuição (isto pode ser usado sem modificação, com exceção da possibilidade de campos de rastreamento de depuração, veja o exemplo abaixo). O resto desta seção trata dos problemas relevantes de configuração de propriedades para outros valores (em ordem de sua aparência, na versão padrão do arquivo)."
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Saída"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"É bem comum que as instalações queiram ter alguma forma de saída do RecoveryManager, para fornecer um registro sobre os acontecimentos da atividade de recuperação. O RecoveryManager usa o mecanismo de rastreamento de log fornecido pelo Arjuna Common Logging Framework (CLF), do qual fornece uma interface de alto nível. Esta esconde diferenças existentes entre o log existente APIs como Jakarta "
+"log4j ou JDK 1.4 logging API. O CLF desvia todos os logs através do framework Apache "
+"Commons Logging e presume-se que a configuração ocorra através daquele framework. "
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr ""
+"Usando os aplicativos CLF, efetue chamadas log nos objetos logger. Os loggers poderão usar os níveis log para decidir se eles estão interessados numa mensagem de log específica. Cada mensagem log possui um Nível log associado, do qual dá a importância e a urgência da mensagem log. O conjunto de possíveis Níveis de Log são DEBUG, INFO, WARN, ERROR e FATAL. Os níveis definidos são ordenados de acordo com os valores íntegros dos mesmos, como segue a seguir: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr ""
+"O CFL fornece uma extensão para filtrar mensagens de log de acordo com a definição de um aplicativo a respeito do finer "
+"granularity. Isto é, quando uma mensagem log é fornecida para o logger com o nível de DEBUG, condições adicionais poderão ser especificadas para determinar se uma mensagem log é ativada ou não."
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "Estas condições são aplicadas \"se e apenas\" o nível DEBUG for ativado, e se a solicitação de log executada pelo aplicativo especificar a depuração granulada."
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "Uma vez ativada, a Depuração é filtrada condicionalmente em três variáveis:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "Nível de depuração: é onde a solicitação de log, com o Nível DEBUG, é gerado, por exemplo: construtores ou métodos básicos."
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "Nível de Visibilidade: a visibilidade do construtor, método, etc. Isto gera a depuração."
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Código de Facilidade: para instanciar o pacote ou sub-modulo com que a depuração é gerada, por exemplo: o armazenamento do objeto."
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr "O CLF define três interfaces de acordo com estas variáveis. Um produto particular poderá implementar a própria classe de acordo com o próprio finer granularity. As Transações JBoss usam o nível de Depuração padrão e o nível de Visibilidade padrão fornecida pelo CLF, porém isto determina o próprio Código de Facilidade. As Transações JBoss usam o nível padrão determinado para seus próprios objetos logger (DEBUG). No entanto, elas usam o recurso de depuração fina para desativar ou ativar as mensagens de depuração. Segue abaixo, os valores definidos de depuração fina usados pelas Transações JBoss:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Nível de depuração - as Transações JBoss usam os valores padrões definidos na classe <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING: Não há diagnósticos. Um objeto logger determinado com estes valores descarta todas as solicitações de depuração"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Diagnóstico completo. Um objeto logger determinado com este valor permite todas as solicitações de depuração, no caso do código de facilidade e nível de visibilidade serem compatíveis com aqueles permitidos pelo logger. "
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "Os Valores de Depuração Adicionais são:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnósticos a partir de construtores."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS: Diagnósticos a partir de finalizadores."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnósticos a partir de construtores e finalizadores."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS: Diagnósticos a partir de funções."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS: Diagnósticos a partir de operadores, como igualdades."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnósticos a partir de funções e operações."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnósticos a partir de todas operações não-triviais."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS: Diagnósticos a partir de funções triviais."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnósticos a partir de operações triviais e operadores."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL: Diagnósticos a partir de todas operações triviais."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Nível de Visibilidade - as Transações JBoss usam valores de padrão definido na classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE: Sem Diagnóstico"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE: apenas a partir de métodos privados."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED: apenas a partir de métodos protegidos."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC: apenas a partir de métodos públicos."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_JBoss_Transactions_Administrators_Guide   only from package methods."
+msgstr "VIS_JBoss_Transactions_Administrators_Guide: apenas a partir de métodos de pacote."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL: Diagnóstico Completo"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Código de facilidade - as Transações JBoss usam os seguintes valores definidos na classe <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (código principal de função atômica)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (classes [buffer] de gerenciamento de estado)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (registros abstratos)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (implementações de armazenamento de objeto)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (gerenciamento de estado e StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (classes de implementação de memória compartilhada)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (classes em geral)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr "FAC_CRASH_RECOVERY = 0x00000800 (rastreamento detalhado de classes e módulo de recuperação de travamento)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (classes de segmentação)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 e suporte 2.0)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (saída normal para gerenciamento de recuperação de travamento)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "Para garantia de uma saída apropriada, é necessário configurar, explicitamente, algumas das propriedades de depuração fina no arquivo <filename>CommonLogging.xml</filename>. Isto tudo, para ativar as mensagens de log emitidas pelo módulo de Transações JBoss."
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr "As mensagens descrevem o início e o comportamento periódico feito pelo RecoveryManager como saída, se utilizarmos o nível de INFO. Caso outro rastreamento de depuração seja requerido, o nível de depuração fina deve ser propriamente configurado. Por exemplo, a configuração seguinte, no CommonLogging.xml, ativa todas as mensagens de depuração, relatadas ao protocolo de Recuperação de Travamento, e emitidas pelo módulo de Transações JBoss."
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "Dois objetos logger são fornecidos, um gerencia as mensagens I18N e o outro não."
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "A configuração das mensagens de recuperação normal, para o nível INFO, permite um nível moderado de reportagem à Produção RecoveryManager. Caso nada aconteça, isto apenas relata a entrada em cada módulo para cada caminho periódico. Para desativar as mensagens INFO produzidas pelo Gerenciador de Recuperação, o nível log deverá ser configurado num nível mais alto: ERROR. Configurando o nível para ERROR significa que o RecoveryManager irá apenas produzir error, aviso ou mensagens fatais."
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "Recuperação Periódica"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"O RecoveryManager verifica o ObjectStore e outras localidades de informação, buscando por transações e recursos que requerem, ou talvez solicitarão, recuperação. A verificação e processo de recuperação são executados pelos módulos de recuperação (instâncias de classes que implementam a interface com.arjuna.ats."
+"arjuna.recovery.RecoveryModule), cada qual com a responsabilidade para uma categoria particular de transação ou recurso. O conjunto de módulos de recuperação usados estão dinamicamente carregados, usando propriedades encontradas no arquivo de propriedade RecoveryManager."
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"A interface possui dois métodos: <literal>periodicWorkFirstPass</literal> e "
+"<literal>periodicWorkSecondPass</literal>. Num intervalo, (definido pela propriedade <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>) o RecoveryManager chamará o primeiro método de caminho em cada propriedade, e então esperará por um breve período (definido pela propriedade <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>) para então chamar o segundo caminho de cada módulo. Basicamente, no primeiro caminho, o módulo faz a verificação (por exemplo; a parte relevante do ObjectStore) para encontrar transações ou recursos que são duvidosos (por exemplo; são parte do caminho através do processo de comprometimento). Já no segundo caminho, se qualquer um dos mesmos ítens ainda forem suspeitos, é possível que o processo do aplicativo original trave e o ítem seja um candidato para a recuperação. "
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"A tentativa de recuperar uma transação, pelo RecoveryManager, que ainda está sendo processada no(s) processo(s) original, poderá interromper a consistência. Conseqüentemente, os módulos de recuperação usam um mecanismo (implementado no pacote <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname>) para checar se é que o processo original ainda está vivo e se a transação continua em progresso. O RecoveryManager apenas procede com a recuperação se o processo original se foi. Por outro lado, se ele estiver sobrevivido, a transação será completada. (Caso um processo do servidor ou sistema travar, mas o processo de inicialização de transação sobreviver, a transação será completada, normalmente gerando um aviso. A recuperação de tal transação é responsabilidade do RecoveryManager). "
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"É muito importante configurar os períodos de intervalo propriamente. O período total de interação será a soma do <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> e o período de tempo necessário para verificar os armazenamentos e tentar a recuperação de quaisquer transações encontradas como duvidosas. Isto tudo, para todos os módulos de recuperação. O período de tentativa de recuperação poderá incluir conexões de intervalo enquanto tentando a comunicação com os processos ou sistemas que tenham travado ou estão inacessíveis (sendo este o motivo pelo qual existem mecanismos no mesmo sistema de recuperação para tentar evitar a recuperação de mesma transação para sempre). O período total de interação afetará quanto tempo um recurso permanecerá inacessível, após a falha. O <literal>periodicRecoveryPeriod</literal> deverá ser configurado em concordância (o padrão é 120 segundos). O <literal>recoveryBackoffPeriod</literal> pode ser relativamente menor (o padrão é 10 segundos). Isto tudo, com a principal intenção de reduzir o número de transações qu!
 e são candidatas para a recuperação, e desta forma, solicitar uma \"chamada ao processo original para a verificação de que elas ainda estão em progresso\"."
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "Nas versões anteriores de Transações JBoss não havia mecanismo de contato, além de que o período de backoff necessitava ser longo o suficiente para evitar que transações de captura fossem perdidas pelo mundo afora. Este risco não ocorre a partir do 3.0."
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"Dois módulos de recuperação (implementações da interface <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname>) são supridos com as Transações JBoss, suportando vários aspectos de recuperação de transação, incluindo a recuperação JDBC. É possível que os usuários mais avançados criem os próprios módulos de recuperação e registrem-os com o Gerenciador de Recuperação. Os módulos de recuperação são registrados como o RecoveryManager usando as propriedades que inicializam com “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. Isto será invocado em cada caminho de recuperação periódica em certa ordem de nomes de propriedades - desta forma é possível predizer a ordenação (mas perceba que a falha em um processo de aplicativo poderá ocorrer enquanto o caminho de recuperação periódico estiver em progresso). As configurações de Extensão de recuperação padrão são as seguintes: "
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "Remoção da entrada expirada"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"A operação do sub-sistema de recuperação fará com que algumas entradas sejam feitas no ObjectStore, das quais não serão removidas em progresso normal. O RecoveryManager possui a facilidade de verificação destes e dos ítens removidos, dos quais são bastante antigos. A verificação e remoção são executadas pelas implementações da interface <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname>. As implementações desta interface são carregadas fornecendo o nome de classe como um valor de uma propriedade pela qual o nome começa com <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. O RecoveryManager chama o método <command>scan()</command> em cada implementação carregada de Expiry Scanner, no intervalo determinado pela propriedade <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. Este valor é dado em horas - o padrão é 12. Um <classname>expiryScanInterval</classname> de valor zero irá suprir qualquer verificação expirada. Caso o valor fornecido seja positivo, a primeira verificação é impedida até o final do primeiro intervalo (usando o valor absoluto)."
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "Os tipos de ítens que são verificados pela expiração são o seguinte:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"Ítens de TransactionStatusManager: um deles é criado por cada processo de aplicativo que usa as Transações JBoss - eles contêm a informação que permite o RecoveryManager a determinar se o processo que inicializou a transação sobreviveu, e qual é o status da transação. O tempo de expiração para isto é configurado pela propriedade <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (em horas - o padrão é 12, zero quer dizer nunca expirado). O tempo de expiração deve ser maior do que o tempo de vida de qualquer Transação JBoss simples, processo de uso."
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "As propriedades de Verificação de Expiração são as seguintes:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "Erros e Exceções"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "Nesta seção, iremos converter os tipos de erros e exceções que possam ser jogados ou relatados durante um aplicativo transacional, além de fornecer indicações prováveis de suas causas."
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr "NO_MEMORY: o aplicativo não possui mais memória (adicione um <classname>OutOfMemoryError</classname>) e as Transações JBoss tentaram realizar uma limpeza (apenas rodando o coletor de lixo) antes de re-adicionar a exceção. Isto é provavelmente um problema transitório e a nova tentativa de invocação deverá ser bem sucedida. "
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr "com.arjuna.ats.arjuna.exceptions.FatalError: ocorreu um erro significando que o sistema de transação deve ser desligado. Antes deste erro ser lançado, o serviço de transação irá certificar-se de que todas as transações tenham sido revertidas. Caso detectado, o aplicativo deverá limpar e encerrar o sistema. E, se houver uma tentativa de um futuro trabalho, a consistência do aplicativo poderá ser violada."
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr "com.arjuna.ats.arjuna.exceptions.LicenceError: foi realizada uma tentativa para usar o serviço de transação de uma maneira inconsistente com a licença atual. O serviço de transação não permitirá nenhum progresso futuro para novas ou existentes transações."
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr "com.arjuna.ats.arjuna.exceptions.ObjectStoreError: um erro foi detectado enquanto o serviço de transação tentava usar o armazenamento do objeto. Não foi possível realizar um progresso."
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "O armazenamento do objeto avisa antecipadamente que os problemas de acesso nos estados poderão ocorrer durante a execução normal da recuperação de travamento. Este é o resultado de tentativas atuais múltiplas para recuperar o desempenho na mesma transação. Isto pode ser facilmente ignorado."
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "Selecionando a implementação JTA"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "Duas variantes da implementação JTA são agora fornecidas e acessíveis através da mesma interface. Elas são:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr "Um puro JTA local, que apenas permite transações JTA não-distribuídas a serem executadas. Esta é a única versão disponível com o produto de Transações JBoss."
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "Uma remoção, JTA CORBA baseada, que permite transações JTA distribuídas a serem executadas. Esta versão é apenas disponível com o produto ArjunaJTS e requer um CORBA ORB suportado."
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "ambas implementações são inteiramente compatíveis com o driver JDBC transacional fornecido com as Transações JBoss."
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "Para se realizar a seleção da implementação local JTA local, é necessário executar os seguintes passos:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"certifique-se de que a propriedade <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> é configurada para <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"certifique-se de que a propriedade <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> é configurada para <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "estas configurações são valores padrões para as propriedades e não precisam ser especificadas, caso a implementação local seja requerida."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# translation of Feedback.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-18 08:29+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "Comentários"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"Caso você encontre um erro neste guia ou se você pensar numa maneira diferente de fazer este manual ainda melhor, queremos muito de ouvir sua opinião. Por favor, submeta o relatório em <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> em referência ao Produto: Plataforma de Aplicativo JBoss Enterprise, Versão: <replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. Caso tenha alguma sugestão para aperfeiçoamento desta documentação, por favor seja o mais específico possível. E, se você encontrar um erro, inclua o número de seção e algumas partes do texto ao redor, para que possamos localizá-lo com mais facilidade."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Preface.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,127 @@
+# translation of Preface.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-19 16:13+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "Prefácio"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "O que contém neste Guia"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr "O Guia de Administração contém informações de como administrar as Transações JBoss API 4.2.3"
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "Audiência"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "Este guia é muito mais relevante para engenheiros, dos quais são responsáveis pela administração das instalações de Transações JBoss 4.2.3."
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "Pré- Requisitos"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "Para que se possa administrar as Transações JBoss, é necessário primeiro entender que elas baseiam-se no ArjunaCore, em muitas das funcionalidades da transação. Assim como, é importante ler o Guia Administrativo ArjunaCore antes de tentar administrar as Transações JBoss."
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "Organização"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "Este guia contém o seguinte capítulo:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "Capítulo 1 - Administração das Transações JBoss: descreve como administrar as Transações JBoss, basicamente selecionando a variante de implementação JTA, local limpo ou remoto (permitindo as transações distribuídas)."
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "Documentação Adicional"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr "Os seguintes guias estão disponíveis no conjunto de documentação das Transações JBoss API 4.2.3:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "Notas de Liberação de Transações JBoss API 4.2.3: Fornece informações recentes sobre Transações JBoss API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "Guia de Instalação de Transações JBoss API 4.2.3: Este guia fornece instruções para instalação de Transações JBoss API 4.2.3."
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "Guia do Programador das Transações JBoss 4.2.3: Fornece instruções para aplicativos escritos."
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/pt-BR/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-17 14:47+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Appendix.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Appendix.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Appendix.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+# translation of Appendix.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Appendix\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:36+0000\n"
+"PO-Revision-Date: 2008-06-24 11:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix.xml:9
+#, no-c-format
+msgid "Revision History"
+msgstr "修订记录"
+
+#. Tag: para
+#: Appendix.xml:10
+#, no-c-format
+msgid "<para>TBD</para>"
+msgstr "<para>TBD</para>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,36 @@
+# translation of Author_Group.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Author_Group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:36+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "FF0000 Headgear Documentation Group"
+msgstr "FF0000 Headgear Documentation Group"
+
+#. Tag: author
+#: Author_Group.xml:7
+#, no-c-format
+msgid ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+msgstr ""
+"<firstname>Dude</firstname> <surname>McDude</surname> <affiliation> "
+"<orgname>My Org</orgname> <orgdiv>Best Div in the place</orgdiv> </"
+"affiliation> <email>dude.mcdude at myorg.org</email>"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 10:38+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss Transactions API 4.2.3 Administration Guide"
+msgstr "JBoss Transactions API 4.2.3 管理员指南"
+
+#. Tag: subtitle
+#: Book_Info.xml:10
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss 企业级应用程序平台"
+
+#. Tag: para
+#: Book_Info.xml:13
+#, no-c-format
+msgid ""
+"This book is the JBoss Enterprise Application Platform edition of the JBoss "
+"Transactions Administrators Guide"
+msgstr "本书是面向 JBoss 企业级应用程序平台的《JBoss Transactions 管理员指南》"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1040 @@
+# translation of Chapter.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-19 00:36+0000\n"
+"PO-Revision-Date: 2008-06-24 14:07+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid ""
+"Apart from ensuring that the run-time system is executing normally, there is "
+"little continuous administration needed for the JBoss Transactions software. "
+"There are a few points however, that should be made:"
+msgstr ""
+"为了确保系统的正常运行,你需要对 JBoss Transactions 进行一点持续的管理。下面"
+"是一些需要注意的地方:"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"The present implementation of the JBoss TA system provides no security or "
+"protection for data. The objects stored in the JBoss Transactions object "
+"store are (typically) owned by the user who ran the application that created "
+"them. The Object Store and Object Manager facilities make no attempt to "
+"enforce even the limited form of protection that Unix/Windows provides. "
+"There is no checking of user or group IDs on access to objects for either "
+"reading or writing."
+msgstr ""
+"目前 JBoss TA 系统的实现没有提供安全性或对数据的保护。存储在 JBoss "
+"Transactions 的 object store 里的对象通常为运行创建这些对象的应用程序的用户所"
+"有。Object Store 和 Object Manager 机制甚至没有强制 Unix/Windows 所提供的有限"
+"的保护。对这些对象的读和写并不需要检查用户或组的 ID。"
+
+#. Tag: para
+#: Chapter.xml:13
+#, no-c-format
+msgid ""
+"Persistent objects created in the Object Store never go away unless the "
+"StateManager.destroy method is invoked on the object or some application "
+"program explicitly deletes them. This means that the Object Store gradually "
+"accumulates garbage (especially during application development and testing "
+"phases). At present we have no automated garbage collection facility. "
+"Further, we have not addressed the problem of dangling references. That is, "
+"a persistent object, A, may have stored a Uid for another persistent object, "
+"B, in its passive representation on disk. There is nothing to prevent an "
+"application from deleting B even though A still contains a reference to it. "
+"When A is next activated and attempts to access B, a run-time error will "
+"occur."
+msgstr ""
+"除非调用 StateManager.destroy 方法或某个应用程序显性地进行删除,在 Object Store 里创建的持久性对象会永远存在。这意味着 "
+"Object Store 会逐渐地积累垃圾(特别是在程序开发和测试阶段)。目前我们还没有自动的垃圾回收机制。而且,我们也还没解决 dangling "
+"引用的问题:某个持久性对象 A,可能在其磁盘上的 passive representation 里存储了另外一个持久性对象 B 的 "
+"UID。应用程序有可能删除了 B,即使 A 仍然具有对其的引用。之后 A 被激活并试图访问 B 时,就会出现一个运行错误。"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"There is presently no support for version control of objects or database "
+"reconfiguration in the event of class structure changes. This is a complex "
+"research area that we have not addressed. At present, if you change the "
+"definition of a class of persistent objects, you are entirely responsible "
+"for ensuring that existing instances of the object in the Object Store are "
+"converted to the new representation. The JBoss Transactions software can "
+"neither detect nor correct references to old object state by new operation "
+"versions or vice versa."
+msgstr ""
+"目前没有对类结构改变时对象或数据库重配置的版本控制的支持。这是我们还没解决的一个复杂的研究领域。目前,如果你修改了持久性对象的类的定义,你需要完全负责确保 "
+"Object Store 里的现存实例转换成新的结构。JBoss Transactions 既不能检测也不能改正通过新的操作版本对旧的对象状态的引用,反之亦然。"
+
+#. Tag: para
+#: Chapter.xml:19
+#, no-c-format
+msgid "Object store management is critically important to the transaction service."
+msgstr "对于事务服务来说,Object store 的管理至关重要。"
+
+#. Tag: title
+#: Chapter.xml:24
+#, no-c-format
+msgid "ObjectStore management"
+msgstr "管理 ObjectStore "
+
+#. Tag: para
+#: Chapter.xml:25
+#, no-c-format
+msgid ""
+"Within the transaction service installation, the object store is updated "
+"regularly whenever transactions are created, or when Transactional Objects "
+"for Java is used. In a failure free environment, the only object states "
+"which should reside within the object store are those representing objects "
+"created with the Transactional Objects for Java API. However, if failures "
+"occur, transaction logs may remain in the object store until crash recovery "
+"facilities have resolved the transactions they represent. As such it is very "
+"important that the contents of the object store are not deleted without due "
+"care and attention, as this will make it impossible to resolve in doubt "
+"transactions. In addition, if multiple users share the same object store it "
+"is important that they realise this and do not simply delete the contents of "
+"the object store assuming it is an exclusive resource."
+msgstr ""
+"在事务访问安装里,只要有事务被创建或是用于 Java 的 Transactional Object 被使用,object store "
+"就会被更新。在无故障的环境里,唯一应该驻留在 object store 里的对象状态时那些代表用 Java API "
+"然而,如果发生了故障,事务日志可能保留在 object store 里,直到故障恢复机制已经恢复了它们所代表的事务。因此,删除 object store 的内容需要很小心和谨慎,这很重要,因为这会导致无法解决可疑的事务。此外,如果多个用户共享相同的 object store,他们也需明白这一点。他们不能假定 object store 里的内容是独占资源而简单地进行删除。"
+
+#. Tag: title
+#: Chapter.xml:28
+#, no-c-format
+msgid "JBoss Transactions runtime information"
+msgstr "JBoss Transactions 的运行信息"
+
+#. Tag: para
+#: Chapter.xml:29
+#, no-c-format
+msgid ""
+"Each module that comprises JBoss Transactions possesses a class called Info. "
+"These classes all provide a single toString method that returns an XML "
+"document representing the configuration information for that module. So, for "
+"example:"
+msgstr ""
+"组成 JBoss Transactions 的每个模块都拥有一个名为 info 的类。这些类都提供单一的 toString 方法来返回代表该模块的配置信息的 "
+"XML 文档。例如:"
+
+#. Tag: programlisting
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+msgstr ""
+"&lt;module-info name=\"arjuna\"&gt;\n"
+"        &lt;source-identifier&gt;unknown&lt;/source-identifier&gt;\n"
+"        &lt;build-information&gt;\n"
+"           Arjuna Technologies [mlittle] (Windows 2000 5.0)\n"
+"        &lt;/build-information&gt;\n"
+"        &lt;version&gt;unknown&lt;/version&gt;\n"
+"        &lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;\n"
+"        &lt;notes&gt;&lt;/notes&gt;\n"
+"        &lt;configuration&gt;\n"
+"                &lt;properties-file dir=\"null\"&gt;arjuna.properties&lt;/"
+"properties-file&gt;\n"
+"                &lt;object-store-root&gt;null&lt;/object-store-root&gt;\n"
+"        &lt;/configuration&gt;\n"
+"&lt;/module-info&gt;"
+
+#. Tag: title
+#: Chapter.xml:34
+#, no-c-format
+msgid "Failure recovery administration"
+msgstr "失效切换管理"
+
+#. Tag: para
+#: Chapter.xml:35
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions will ensure that "
+"results of a transaction are applied consistently to all resources affected "
+"by the transaction, even if any of the application processes or the machine "
+"hosting them crash or lose network connectivity. In the case of machine "
+"(system) crash or network failure, the recovery will not take place until "
+"the system or network are restored, but the original application does not "
+"need to be restarted – recovery responsibility is delegated to the Recovery "
+"Manager process (see below). Recovery after failure requires that "
+"information about the transaction and the resources involved survives the "
+"failure and is accessible afterward: this information is held in the "
+"ActionStore, which is part of the ObjectStore."
+msgstr ""
+"JBoss Transactions "
+"的失效切换子系统将确保在即使应用程序进程或主机崩溃或断开了网络连接的情况下,事务的结果都可以持续地应用到事务所影响的资源里。在主机(系统)崩溃或网络故障时,失效"
+"切换将直到系统或网络恢复时才进行,但原来的应用程序不需要重启 - 切换的责任委托给了 Recovery Manager "
+"进程(请参考下面内容)。失效切换要求和事务和资源相关的信息:这些信息保存在作为 ObjectStore 一部分的 ActionStore 里。"
+
+#. Tag: para
+#: Chapter.xml:38
+#, no-c-format
+msgid "If the ObjectStore is destroyed or modified, recovery may not be possible."
+msgstr "如果 ObjectStore 被销毁或修改,失效切换有可能无法进行。"
+
+#. Tag: para
+#: Chapter.xml:41
+#, no-c-format
+msgid ""
+"Until the recovery procedures are complete, resources affected by a "
+"transaction that was in progress at the time of the failure may be "
+"inaccessible. For database resources, this may be reported as tables or rows "
+"held by “in-doubt transactions”. For TransactionalObjects for Java "
+"resources, an attempt to activate the Transactional Object (as when trying "
+"to get a lock) will fail."
+msgstr ""
+"直到失效切换过程完成之前,故障发生时正进行的事务所影响的资源都可能无法访问。对于数据库资源而言,可能出现表或行被“in-doubt "
+"transactions”锁定。对于用于 Java 资源的 TransactionalObjects,试图激活 Transactional "
+"Object(尝试获取锁)将失败。"
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The Recovery Manager"
+msgstr "Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:44
+#, no-c-format
+msgid ""
+"The failure recovery subsystem of JBoss Transactions requires that the stand-"
+"alone Recovery Manager process be running for each ObjectStore (typically "
+"one for each node on the network that is running JBoss Transactions "
+"applications). The RecoveryManager file is located in the arjunacore jar "
+"file within the package <classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryManager</classname>. To start the Recovery Manager issue the "
+"following command:"
+msgstr ""
+"JBoss Transactions 的失效切换(failure recovery)子系统要求为每个 ObjectStore(通常是网络上的每个运行 "
+"JBoss Transactions 应用程序的节点)运行独立的 Recovery Manager 进程。RecoveryManager 文件位于 <"
+"classname>com.arjuna.ats.arjuna.recovery.RecoveryManager</classname> 包里的 "
+"arjunacore jar 中。要启动 Recovery Manager,你可以使用下面的命令:"
+
+#. Tag: command
+#: Chapter.xml:45
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager"
+
+#. Tag: para
+#: Chapter.xml:46
+#, no-c-format
+msgid ""
+"If the <literal>-test</literal> flag is used with the Recovery Manager then "
+"it will display a “Ready” message when initialised, i.e.,"
+msgstr "如果使用了 <literal>-test</literal> 标签,它将在初始化时显示“Ready”信息,也就是:"
+
+#. Tag: command
+#: Chapter.xml:47
+#, no-c-format
+msgid "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+msgstr "java com.arjuna.ats.arjuna.recovery.RecoveryManager -test"
+
+#. Tag: title
+#: Chapter.xml:50
+#, no-c-format
+msgid "Configuring the Recovery Manager"
+msgstr "配置 Recovery Manager"
+
+#. Tag: para
+#: Chapter.xml:51
+#, no-c-format
+msgid ""
+"The RecoveryManager reads the properties defined in the <filename>arjuna."
+"properties</filename> file and then also reads the property file "
+"<filename>RecoveryManager.properties</filename>, from the same directory as "
+"it found the arjuna properties file. An entry for a property in the "
+"RecoveryManager properties file will override an entry for the same property "
+"in the main TransactionService properties file. Most of the entries are "
+"specific to the Recovery Manager."
+msgstr ""
+"RecoveryManager 读取 <filename>arjuna.properties</filename> "
+"文件里定义的属性,然后读取相同目录下的属性文件 <filename>RecoveryManager.properties</filename>"
+"。RecoveryManager 属性文件里的条目将覆盖 TransactionService 属性文件里相同的条目。大多数条目都是 Recovery "
+"Manager 所专有的。"
+
+#. Tag: para
+#: Chapter.xml:52
+#, no-c-format
+msgid ""
+"A default version of <filename>RecoveryManager.properties</filename> is "
+"supplied with the distribution – this can be used without modification, "
+"except possibly the debug tracing fields (see below, Output). The rest of "
+"this section discusses the issues relevant in setting the properties to "
+"other values (in the order of their appearance in the default version of the "
+"file)"
+msgstr ""
+"本发行版本提供一个缺省的 <filename>RecoveryManager.properties</filename> 版本 - "
+"它无需修改就可以使用,除了一些调试跟踪的字段(请参考下面的 Output)。本节剩下的内容将讨论将属性设置为其他值所相关的问题(按照在缺省版本里出现的顺序)。"
+
+#. Tag: title
+#: Chapter.xml:54
+#, no-c-format
+msgid "Output"
+msgstr "Output"
+
+#. Tag: para
+#: Chapter.xml:55
+#, no-c-format
+msgid ""
+"It is likely that installations will want to have some form of output from "
+"the RecoveryManager, to provide a record of what recovery activity has taken "
+"place. RecoveryManager uses the logging tracing mechanism provided by the "
+"Arjuna Common Logging Framework (CLF), which provides a high level interface "
+"that hides differences that exist between existing logging APIs such Jakarta "
+"log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache "
+"Commons Logging framework and configuration is assumed to occur through that "
+"framework."
+msgstr ""
+"很可能安装将希望从 RecoveryManager 里获得某种形式的输出来提供发生恢复的记录。RecoveryManager 使用 Arjuna Common Logging Framework (CLF) 提供的日志跟踪机制,它提供了一个隐藏了现有的 logging API 如 Jakarta "
+"log4j 或 JDK 1.4 logging API 之间的差异的高级别的接口。CLF 通过 Apache "
+"Commons Logging 框架间接处理日志,其配置假定存在于该框架内。"
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"With the CLF applications make logging calls on logger objects. Loggers may "
+"use logging Levels to decide if they are interested in a particular log "
+"message. Each log message has an associated log Level, that gives the "
+"importance and urgency of a log message. The set of possible Log Levels are "
+"DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to "
+"their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; "
+"FATAL."
+msgstr "用 CLF 应用程序来调用 logger 对象的日志调用。Logger 可以使用日志级别来决定具体的日志信息。每个日志信息都有一个相关的日志级别来表示重要和紧急程度。日志级别可以是 DEBUG、INFO、WARN、 ERROR 和 FATAL。按整形值的顺序排列为:DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL。"
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"The CLF provides an extension to filter logging messages according to finer "
+"granularity an application may define. That is, when a log message is "
+"provided to the logger with the DEBUG level, additional conditions can be "
+"specified to determine if the log message is enabled or not."
+msgstr "CLF 提供按照定义的颗粒度过滤日志消息的扩展。这就是说,当 DEBUG 级别的日志消息被提供给 logger时,你可以指定其他的条件来决定是否启用这个日志消息。"
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"These conditions are applied if and only the DEBUG level is enabled and the "
+"log request performed by the application specifies debugging granularity."
+msgstr "只有启用了 DEBUG 级别且日志请求由应用程序专有的调试颗粒度执行时,才能应用这些条件。"
+
+#. Tag: para
+#: Chapter.xml:71
+#, no-c-format
+msgid "When enabled, Debugging is filtered conditionally on three variables:"
+msgstr "被启用后,日志消息根据 3 个变量进行有条件地过滤:"
+
+#. Tag: para
+#: Chapter.xml:74
+#, no-c-format
+msgid ""
+"Debugging level: this is where the log request with the DEBUG Level is "
+"generated from, e.g., constructors or basic methods."
+msgstr "调试级别(Debugging level):DEBUG 级别的日志请求产生的地方,如构造函数或基本方法。"
+
+#. Tag: para
+#: Chapter.xml:77
+#, no-c-format
+msgid ""
+"Visibility level: the visibility of the constructor, method, etc. that "
+"generates the debugging."
+msgstr "可见级别(Visibility level):产生调试信息的构造函数、方法等的可见性。"
+
+#. Tag: para
+#: Chapter.xml:80
+#, no-c-format
+msgid ""
+"Facility code: for instance the package or sub-module within which debugging "
+"is generated, e.g., the object store."
+msgstr "Facility code:例如产生调试信息的包或子模块,如 ObjectStore。"
+
+#. Tag: para
+#: Chapter.xml:83
+#, no-c-format
+msgid ""
+"According to these variables the CLF defines three interfaces. A particular "
+"product may implement its own classes according to its own finer "
+"granularity. JBoss Transactions uses the default Debugging level and the "
+"default Visibility level provided by CLF, but it defines its own Facility "
+"Code. JBoss Transactions uses the default level assigned to its logger "
+"objects (DEBUG). However, it uses the finer debugging features to disable or "
+"enable debug messages. Finer debugging values used by the JBoss Transactions "
+"are defined below:"
+msgstr ""
+"根据这些变量,CLF 定义了 3 个接口。特定的产品可以按照需要实现自己的类。JBoss Transactions 使用 CLF 提供的缺省 Debugging level 和 Visibility level,但它定义自己的 Facility "
+"Code。JBoss Transactions 使用分配给 logger 对象的缺省的级别(DEBUG)。然而,它使用 finer debugging 特征来禁用或启用调试消息。JBoss Transactions 使用的 finer debugging 值有:"
+
+#. Tag: para
+#: Chapter.xml:84
+#, no-c-format
+msgid ""
+"Debugging level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.DebugLevel</classname>"
+msgstr "Debugging level – JBoss Transactions 使用 <classname>com.arjuna.common.util.logging.DebugLevel</classname> 类里定义的缺省值"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"NO_DEBUGGING:  No diagnostics. A logger object assigned with this values "
+"discard all debug requests"
+msgstr "NO_DEBUGGING:  No diagnostics. 这个值分配的 Logger 对象丢弃所有的调试请求。"
+
+#. Tag: para
+#: Chapter.xml:90
+#, no-c-format
+msgid ""
+"FULL_DEBUGGING: Full diagnostics. A Logger object assigned with this value "
+"allows all debug requests if the facility code and the visibility level "
+"match those allowed by the logger."
+msgstr "FULL_DEBUGGING: Full diagnostics. 如果 facility code 和 the visibility level 符合 logger 所允许的值,这个值分配的 Logger 对象允许所有的调试请求。"
+
+#. Tag: para
+#: Chapter.xml:93
+#, no-c-format
+msgid "Additional Debugging Values are:"
+msgstr "其他的调试值有:"
+
+#. Tag: para
+#: Chapter.xml:96
+#, no-c-format
+msgid "CONSTRUCTORS: Diagnostics from constructors."
+msgstr "CONSTRUCTORS: Diagnostics from constructors."
+
+#. Tag: para
+#: Chapter.xml:99
+#, no-c-format
+msgid "DESTRUCTORS:  Diagnostics from finalizers."
+msgstr "DESTRUCTORS:  Diagnostics from finalizers."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+msgstr "CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid "FUNCTIONS:  Diagnostics from functions."
+msgstr "FUNCTIONS:  Diagnostics from functions."
+
+#. Tag: para
+#: Chapter.xml:108
+#, no-c-format
+msgid "OPERATORS:  Diagnostics from operators, such as equals."
+msgstr "OPERATORS:  Diagnostics from operators, such as equals."
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid "FUNCS_AND_OPS: Diagnostics from functions and operations."
+msgstr "FUNCS_AND_OPS: Diagnostics from functions and operations."
+
+#. Tag: para
+#: Chapter.xml:114
+#, no-c-format
+msgid "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+msgstr "ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations."
+
+#. Tag: para
+#: Chapter.xml:117
+#, no-c-format
+msgid "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+msgstr "TRIVIAL_FUNCS:  Diagnostics from trivial functions."
+
+#. Tag: para
+#: Chapter.xml:120
+#, no-c-format
+msgid "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+msgstr "TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators."
+
+#. Tag: para
+#: Chapter.xml:123
+#, no-c-format
+msgid "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+msgstr "ALL_TRIVIAL:  Diagnostics from all trivial operations."
+
+#. Tag: para
+#: Chapter.xml:126
+#, no-c-format
+msgid ""
+"Visibility level – JBoss Transactions uses the default values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Visibility level – JBoss Transactions 使用 <classname>com.arjuna.common.util.logging.VisibilityLevel</classname> 类里定义的缺省值"
+
+#. Tag: para
+#: Chapter.xml:129
+#, no-c-format
+msgid "VIS_NONE:  No Diagnostic"
+msgstr "VIS_NONE:  No Diagnostic"
+
+#. Tag: para
+#: Chapter.xml:132
+#, no-c-format
+msgid "VIS_PRIVATE :  only from private methods."
+msgstr "VIS_PRIVATE :  only from private methods."
+
+#. Tag: para
+#: Chapter.xml:135
+#, no-c-format
+msgid "VIS_PROTECTED  only from protected methods."
+msgstr "VIS_PROTECTED  only from protected methods."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "VIS_PUBLIC   only from public methods."
+msgstr "VIS_PUBLIC   only from public methods."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "VIS_PACKAGE   only from package methods."
+msgstr "VIS_PACKAGE   only from package methods."
+
+#. Tag: para
+#: Chapter.xml:144
+#, no-c-format
+msgid "VIS_ALL:  Full Diagnostic"
+msgstr "VIS_ALL:  Full Diagnostic"
+
+#. Tag: para
+#: Chapter.xml:147
+#, no-c-format
+msgid ""
+"Facility Code – JBoss Transactions uses the following values defined in the "
+"class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>"
+msgstr "Facility Code – JBoss Transactions 使用 <classname>com.arjuna.common.util.logging.VisibilityLevel</classname> 类定义的下列值"
+
+#. Tag: para
+#: Chapter.xml:150
+#, no-c-format
+msgid "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+msgstr "FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module)."
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+msgstr "FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes)."
+
+#. Tag: para
+#: Chapter.xml:156
+#, no-c-format
+msgid "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+msgstr "FAC_ABSTRACT_REC = 0x00000008 (abstract records)."
+
+#. Tag: para
+#: Chapter.xml:159
+#, no-c-format
+msgid "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+msgstr "FAC_OBJECT_STORE = 0x00000010 (object store implementations)."
+
+#. Tag: para
+#: Chapter.xml:162
+#, no-c-format
+msgid "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+msgstr "FAC_STATE_MAN = 0x00000020 (state management and StateManager)."
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+msgstr "FAC_SHMEM = 0x00000040 (shared memory implementation classes)."
+
+#. Tag: para
+#: Chapter.xml:168
+#, no-c-format
+msgid "FAC_GENERAL = 0x00000080 (general classes)."
+msgstr "FAC_GENERAL = 0x00000080 (general classes)."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+msgstr ""
+"FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and "
+"classes)."
+
+#. Tag: para
+#: Chapter.xml:174
+#, no-c-format
+msgid "FAC_THREADING = 0x00002000 (threading classes)."
+msgstr "FAC_THREADING = 0x00002000 (threading classes)."
+
+#. Tag: para
+#: Chapter.xml:177
+#, no-c-format
+msgid "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+msgstr "AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support)."
+
+#. Tag: para
+#: Chapter.xml:180
+#, no-c-format
+msgid "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+msgstr "FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager)."
+
+#. Tag: para
+#: Chapter.xml:183
+#, no-c-format
+msgid ""
+"To ensure appropriate output, it is necessary to set some of the finer debug "
+"properties explicitly in the <filename>CommonLogging.xml</filename> file, to "
+"enable logging messages issued by the JBoss Transactions module."
+msgstr "为了保证合适的输出,我们有必要在 <filename>CommonLogging.xml</filename> 文件里对一些调试属性进行更详细的设置,启用 JBoss Transactions 模块登记的日志信息。"
+
+#. Tag: para
+#: Chapter.xml:184
+#, no-c-format
+msgid ""
+"Messages describing the start and the periodical behavior made by the "
+"RecoveryManager are output using the INFO level. If other debug tracing is "
+"wanted, the finer debugging level should be set appropriately. For instance, "
+"the following configuration, in the CommonLogging.xml, enables all debug "
+"messages related to the Crash Recovery protocol and issued by the JBoss "
+"Transactions module."
+msgstr ""
+"描述启动和 RecoveryManager 的定期行为的消息使用 INFO 级别的输出。如果需要其他调试跟踪信息,你应该设置更详细的调试级别。例如,下面 CommonLogging.xml 里的配置,启用了和 Crash Recovery 协议相关以及 JBoss "
+"Transactions 产生的所有调试信息。"
+
+#. Tag: programlisting
+#: Chapter.xml:186
+#, no-c-format
+msgid ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+msgstr ""
+"&lt;!-- Common logging related properties. --&gt;\n"
+"&lt;property\n"
+"  name=\"com.arjuna.common.util.logging.DebugLevel\"\n"
+"  value=\"0x00000000\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.FacilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;\n"
+"&lt;propertyname=\"com.arjuna.common.util.logging.VisibilityLevel\"\n"
+"  value=\"0xffffffff\"/&gt;"
+
+#. Tag: para
+#: Chapter.xml:189
+#, no-c-format
+msgid ""
+"Two logger objects are provided, one manages I18N messages and a second does "
+"not."
+msgstr "这里提供了两个 logger 对象,一个管理 I18N 消息而另外一个则处理其他消息。"
+
+#. Tag: para
+#: Chapter.xml:192
+#, no-c-format
+msgid ""
+"Setting the normal recovery messages to the INFO level allows the "
+"RecoveryManager producing a moderate level of reporting. If nothing is going "
+"on, it just reports the entry into each module for each periodic pass. To "
+"disable INFO messages produced by the Recovery Manager, the logging level "
+"could be set to the higher level: ERROR. Setting the level to ERROR means "
+"that the RecoveryManager will only produce error, warning or fatal messages."
+msgstr "把常规恢复消息设置为 INFO 级别允许 RecoveryManager 产生适度的报告。如果没有发生任何事情,它仅仅报告模块的定期登录。要禁用 Recovery Manager 提供的 INFO 消息,调试级别可以设为更高的 ERROR 级别。这表示 RecoveryManager 将只产生错误、警告或致命错误信息。"
+
+#. Tag: title
+#: Chapter.xml:196
+#, no-c-format
+msgid "Periodic Recovery"
+msgstr "定期恢复"
+
+#. Tag: para
+#: Chapter.xml:197
+#, no-c-format
+msgid ""
+"The RecoveryManager scans the ObjectStore and other locations of "
+"information, looking for transactions and resources that require, or may "
+"require recovery. The scans and recovery processing are performed by "
+"recovery modules, (instances of classes that implement the com.arjuna.ats."
+"arjuna.recovery.RecoveryModule interface), each with responsibility for a "
+"particular category of transaction or resource. The set of recovery modules "
+"used are dynamically loaded, using properties found in the RecoveryManager "
+"property file."
+msgstr ""
+"RecoveryManager 扫描 ObjectStore 以及信息的其他位置,寻找需要恢复的事务和资源。这个扫描和恢复过程由恢复模块来执行(实现 com.arjuna.ats."
+"arjuna.recovery.RecoveryModule 接口的类的实例),每个都负责特定类别的事务和资源。恢复模块使用 RecoveryManager 属性文件里找到的属性动态地进行加载。"
+
+#. Tag: para
+#: Chapter.xml:198
+#, no-c-format
+msgid ""
+"The interface has two methods: <literal>periodicWorkFirstPass</literal> and "
+"<literal>periodicWorkSecondPass</literal>. At an interval (defined by "
+"property <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname>), the RecoveryManager will call the first pass method on each "
+"property, then wait for a brief period (defined by property <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname>), then call the "
+"second pass of each module. Typically, in the first pass, the module scans "
+"(e.g. the relevant part of the ObjectStore) to find transactions or "
+"resources that are in-doubt (i.e. are part way through the commitment "
+"process). On the second pass, if any of the same items are still in-doubt, "
+"it is possible the original application process has crashed and the item is "
+"a candidate for recovery."
+msgstr ""
+"这个接口有两个方法:<literal>periodicWorkFirstPass</literal> 和 "
+"<literal>periodicWorkSecondPass</literal>。根据 <classname>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</"
+"classname> 属性定义的间隔,RecoveryManager 件将在每个属性上调用第一个 pass 方法,然后等待一段短暂的时间(由 <classname>com."
+"arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</classname> 属性定义)。通常,在第一个 pass 方法里,模块通过扫描(例如 ObjectStore 的相关部分)来发现可疑的事务和资源(也就是提交过程进行一部分)。在第二个 pass 方法里,如果任何相同的事务或资源仍然可疑,那么原来的应用程序就有可能已经崩溃,这些事务和资源就需要进行恢复。"
+
+#. Tag: para
+#: Chapter.xml:199
+#, no-c-format
+msgid ""
+"An attempt, by the RecoveryManager, to recover a transaction that is still "
+"progressing in the original process(es) is likely to break the consistency. "
+"Accordingly, the recovery modules use a mechanism (implemented in the "
+"<classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> package) to check to see if the original process is still alive, "
+"and if the transaction is still in progress. The RecoveryManager only "
+"proceeds with recovery if the original process has gone, or, if still alive, "
+"the transaction is completed. (If a server process or machine crashes, but "
+"the transaction-initiating process survives, the transaction will complete, "
+"usually generating a warning. Recovery of such a transaction is the "
+"RecoveryManager’s responsibility)."
+msgstr ""
+"RecoveryManager 试图恢复仍然在原来进程里进行的事务有可能会破坏一致性。因此,恢复模块使用一个机制(在 <classname>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</"
+"classname> 包里实现)来检查原来的进程是否仍然活动,且事务是否仍在进行。RecoveryManager 只在原始进程已经结束时才进行恢复,如果进程仍然活动,则在事务完成后进行。(如果服务器进程或主机崩溃了,但初始事务的基础仍然活动,事务也会完成并通常产生一个警告。RecoveryManager 也负责恢复这样的事务。)"
+
+#. Tag: para
+#: Chapter.xml:200
+#, no-c-format
+msgid ""
+"It is clearly important to set the interval periods appropriately. The total "
+"iteration time will be the sum of the <literal>periodicRecoveryPeriod</"
+"literal>, <literal>recoveryBackoffPeriod</literal> and the length of time it "
+"takes to scan the stores and to attempt recovery of any in-doubt "
+"transactions found, for all the recovery modules. The recovery attempt time "
+"may include connection timeouts while trying to communicate with processes "
+"or machines that have crashed or are inaccessible (which is why there are "
+"mechanisms in the recovery system to avoid trying to recover the same "
+"transaction for ever). The total iteration time will affect how long a "
+"resource will remain inaccessible after a failure – "
+"<literal>periodicRecoveryPeriod</literal> should be set accordingly (default "
+"is 120 seconds). The <literal>recoveryBackoffPeriod</literal> can be "
+"comparatively short (default is 10 seconds) – its purpose is mainly to "
+"reduce the number of transactions that are candidates for recovery and which "
+"thus require a “call to the original process to see if they are still in "
+"progress"
+msgstr ""
+"设置合适的时间间隔显然很重要。重复时间将是 <literal>periodicRecoveryPeriod</"
+"literal>、<literal>recoveryBackoffPeriod</literal> 和所有恢复模块扫描 ObjectStore 并试图恢复可疑事务所需时间的总和。恢复时间可能包括试图和已经崩溃或无法访问的进程或主机通信所需的连接超时时间(这是为什么在恢复系统里有机制避免试图恢复相同的事务)。总共的重复时间将影响在发生故障后资源保持无法访问状态的时间 - <literal>periodicRecoveryPeriod</literal> 应该相应地进行设置(缺省是 120 秒)。<literal>recoveryBackoffPeriod</literal> 可以相对较短(缺省是 10 秒) - 它的目的主要是减少事务作为恢复备选对象的次数(这需要访问原始进程,检查事务是否仍在进行)。"
+
+#. Tag: para
+#: Chapter.xml:203
+#, no-c-format
+msgid ""
+"In previous versions of JBoss Transactions there was no contact mechanism, "
+"and the backoff period had to be long enough to avoid catching transactions "
+"in flight at all. From 3.0, there is no such risk."
+msgstr "JBoss Transactions 之前的版本里没有 contact 机制,你得把 backoff period 设置为足够久来避免缓存事务冲突。从 3.0 版本后,这不再是一个问题。"
+
+#. Tag: para
+#: Chapter.xml:206
+#, no-c-format
+msgid ""
+"Two recovery modules (implementations of the <classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> interface) are supplied with "
+"JBoss Transactions, supporting various aspects of transaction recovery "
+"including JDBC recovery. It is possible for advanced users to create their "
+"own recovery modules and register them with the Recovery Manager. The "
+"recovery modules are registered with the RecoveryManager using properties "
+"that begin with “<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”. These will be invoked on each pass of the "
+"periodic recovery in the sort-order of the property names – it is thus "
+"possible to predict the ordering (but note that a failure in an application "
+"process might occur while a periodic recovery pass is in progress). The "
+"default Recovery Extension settings are:"
+msgstr ""
+"JBoss Transactions 提供了两个恢复模块(<classname>com.arjuna.ats."
+"arjuna.recovery.RecoveryModule</classname> 接口的实现),它们支持不同的事务恢复(包括 JDBC 恢复)。高级用户有可能创建自己的恢复模块并向 Recovery Manager 注册。恢复模块使用以“<classname>com.arjuna.ats.arjuna.recovery."
+"RecoveryExtension</classname>”开始的属性向 Recovery Manager 注册。它们将按照属性名称的顺序调用其定期恢复的 pass 方法(但请注意在定期恢复的 pass 方法运行时,可能会发生应用程序进程失效)。缺省的 Recovery Extension 设置是:"
+
+#. Tag: programlisting
+#: Chapter.xml:208
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.recoveryExtension1 = \n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule\n"
+"\n"
+"com.arjuna.ats.arjuna.recovery.recoveryExtension2 = \n"
+"  com.arjuna.ats.txoj.recovery.TORecoveryModule"
+
+#. Tag: title
+#: Chapter.xml:211
+#, no-c-format
+msgid "Expired entry removal"
+msgstr "删除过期的条目"
+
+#. Tag: para
+#: Chapter.xml:212
+#, no-c-format
+msgid ""
+"The operation of the recovery subsystem will cause some entries to be made "
+"in the ObjectStore that will not be removed in normal progress. The "
+"RecoveryManager has a facility for scanning for these and removing items "
+"that are very old. Scans and removals are performed by implementations of "
+"the <classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> "
+"interface. Implementations of this interface are loaded by giving the class "
+"name as the value of a property whose name begins with <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname>. The RecoveryManager calls the "
+"<command>scan()</command> method on each loaded Expiry Scanner "
+"implementation at an interval determined by the property <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname>. This value is "
+"given in hours – default is 12. An <classname>expiryScanInterval</classname> "
+"value of zero will suppress any expiry scanning. If the value as supplied is "
+"positive, the first scan is performed when RecoveryManager starts; if the "
+"value is negative, the first scan is delayed until after the first interval "
+"(using the absolute value)"
+msgstr ""
+"恢复子系统的操作将导致 ObjectStore 创建的某些条目在常规情况下不会被删除。RecoveryManager 里有一个工具可以扫描和删除那些很旧的的条目。<classname>com.arjuna.ats.arjuna.recovery.ExpiryScanner</classname> 接口的实现执行这种扫描和删除。这个实现通过把类名作为以 <classname>com.arjuna."
+"ats.arjuna.recovery.expiryScanner</classname> 开始的属性的值来加载。RecoveryManager 按照属性 <classname>com."
+"arjuna.ats.arjuna.recovery.expiryScanInterval</classname> 指定的时间间隔调用每个加载的 Expiry Scanner 实现的 <command>scan()</command> 方法。这个值以小时为单位 - 缺省为 12。零值的 <classname>expiryScanInterval</classname> 将忽略任何过期扫描。如果这个值为正值,RecoveryManager 启动时将执行第一次扫描;如果为负值,第一次扫描将直到第一个间隔(使用绝对值)后才发生。"
+
+#. Tag: para
+#: Chapter.xml:213
+#, no-c-format
+msgid "The kinds of item that are scanned for expiry are:"
+msgstr "扫描过期的条目类型包括:"
+
+#. Tag: para
+#: Chapter.xml:214
+#, no-c-format
+msgid ""
+"TransactionStatusManager items : one of these is created by every "
+"application process that uses JBoss Transactions – they contain the "
+"information that allows the RecoveryManager to determine if the process that "
+"initiated the transaction is still alive, and what the transaction status "
+"is. The expiry time for these is set by the property <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname> (in hours "
+"– default is 12, zero means never expire). The expiry time should be greater "
+"than the lifetime of any single JBoss Transactions-using process."
+msgstr ""
+"TransactionStatusManager 条目:使用 JBoss Transactions 的每个应用程序进程创建的条目 - 它们包含允许 RecoveryManager 决定初始化事务的进程是否仍然活动、以及事务状态的信息。过期时间由属性 <classname>com.arjuna."
+"ats.arjuna.recovery.transactionStatusManagerExpiryTime</classname>(以小时为单位 - 缺省为 12,0 表示永不过期)设置。过期时间应该大于任何单个 JBoss Transactions-using 进程的生存时间。"
+
+#. Tag: para
+#: Chapter.xml:215
+#, no-c-format
+msgid "The Expiry Scanner properties for these are:"
+msgstr "Expiry Scanner 属性是:"
+
+#. Tag: programlisting
+#: Chapter.xml:217
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+msgstr ""
+"com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager =\n"
+"  com.arjuna.ats.internal.ts.arjuna.recovery."
+"ExpiredTransactionStatusManagerScanner"
+
+#. Tag: title
+#: Chapter.xml:220
+#, no-c-format
+msgid "Errors and Exceptions"
+msgstr "错误和异常"
+
+#. Tag: para
+#: Chapter.xml:221
+#, no-c-format
+msgid ""
+"In this section we shall cover the types of errors and exceptions which may "
+"be thrown or reported during a transactional application and give probable "
+"indications of their causes."
+msgstr "本节将涵盖在事务行应用程序运行时可能抛出或报告的错误和异常类型,并给出可能的原因。"
+
+#. Tag: para
+#: Chapter.xml:224
+#, no-c-format
+msgid ""
+"NO_MEMORY: the application has run out of memory (thrown an "
+"<classname>OutOfMemoryError</classname>) and JBoss Transactions has "
+"attempted to do some cleanup (by running the garbage collector) before re-"
+"throwing the exception. This is probably a transient problem and retrying "
+"the invocation should succeed."
+msgstr ""
+"NO_MEMORY:应用程序已耗尽内存(抛出 <classname>OutOfMemoryError</classname>)且 JBoss "
+"Transactions 在重新抛出这个异常时已经试图进行清理(通过运行 garbage collector)。这可能是一个暂时的问题,重试应该能够成功。"
+
+#. Tag: para
+#: Chapter.xml:227
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which "
+"means that the transaction system must shut down. Prior to this error being "
+"thrown the transaction service will have ensured that all running "
+"transactions have rolled back. If caught, the application should tidy up and "
+"exit. If further work is attempted, application consistency may be violated."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions."
+"FatalError:表示事务系统必须关闭的错误已经发生。在抛出这个错误之前,服务将确保所有的事务都进行了回滚。如果捕获了这个异常,应用程序应该清理并退出。如果"
+"进行进一步尝试,可能会破坏应用程序的一致性。"
+
+#. Tag: para
+#: Chapter.xml:230
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to "
+"use the transaction service in a manner inconsistent with the current "
+"licence. The transaction service will not allow further forward progress for "
+"existing or new transactions."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions."
+"LicenceError:尝试以和当前许可证不一致的方式使用事务服务。事务服务将不会允许对现有的或新的事务进行进一步的行动。"
+
+#. Tag: para
+#: Chapter.xml:233
+#, no-c-format
+msgid ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while "
+"the transaction service attempted to use the object store. Further forward "
+"progress is not possible."
+msgstr ""
+"com.arjuna.ats.arjuna.exceptions.ObjectStoreError:事务服务试图使用 object store "
+"时产生了错误。进一步的行动不被允许。"
+
+#. Tag: para
+#: Chapter.xml:236
+#, no-c-format
+msgid ""
+"Object store warnings about access problems on states may occur during the "
+"normal execution of crash recovery. This is the result of multiple "
+"concurrent attempts to perform recovery on the same transaction. It can be "
+"safely ignored."
+msgstr "在失效切换的正常执行过程中,可能出现关于状态访问的 Object store 的警告。这是因为在相同的事务上执行多个并行的失效切换。它可以被忽略而无安全隐患。"
+
+#. Tag: title
+#: Chapter.xml:241
+#, no-c-format
+msgid "Selecting the JTA implementation"
+msgstr "选择 JTA 实现"
+
+#. Tag: para
+#: Chapter.xml:242
+#, no-c-format
+msgid ""
+"Two variants of the JTA implementation are now provided and accessible "
+"through the same interface. These are:"
+msgstr "目前可通过相同的接口访问两个 JTA 实现的变种。它们是:"
+
+#. Tag: para
+#: Chapter.xml:245
+#, no-c-format
+msgid ""
+"A purely local JTA, which only allows non-distributed JTA transactions to be "
+"executed. This is the only version available with the JBoss Transactions "
+"product."
+msgstr "纯本地的 JTA,它只允许执行非分布式的 JTA 事务。JBoss Transactions 产品里只有这个版本可用。"
+
+#. Tag: para
+#: Chapter.xml:248
+#, no-c-format
+msgid ""
+"A remote, CORBA-based JTA, which allows distributed JTA transactions to be "
+"executed. This version is only available with the ArjunaJTS product and "
+"requires a supported CORBA ORB."
+msgstr "远程的,基于 CORBA 的 JTA,它允许执行分布式的 JTA 事务。它只在 ArjunaJTS 里可用且需要对 CORBA ORB 的支持。"
+
+#. Tag: para
+#: Chapter.xml:252
+#, no-c-format
+msgid ""
+"both of these implementations are fully compatible with the transactional "
+"JDBC driver provided with JBoss Transactions."
+msgstr "这两种实现都和 JBoss Transactions 提供的事务性的 JDBC 驱动完全兼容。"
+
+#. Tag: para
+#: Chapter.xml:255
+#, no-c-format
+msgid ""
+"In order to select the local JTA implementation it is necessary to perform "
+"the following steps:"
+msgstr "要选择本地的 JTA 实现,你必须执行下面的步骤:"
+
+#. Tag: para
+#: Chapter.xml:258
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaTMImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.TransactionManagerImple</literal>."
+msgstr ""
+"确保属性 <literal>com.arjuna.ats.jta.jtaTMImplementation</literal> 被设置为 <literal>"
+"com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple<"
+"/literal>。"
+
+#. Tag: para
+#: Chapter.xml:261
+#, no-c-format
+msgid ""
+"make sure the property <literal>com.arjuna.ats.jta.jtaUTImplementation</"
+"literal> is set to <literal>com.arjuna.ats.internal.jta.transaction."
+"arjunacore.UserTransactionImple</literal>."
+msgstr ""
+"确保属性 <literal>com.arjuna.ats.jta.jtaUTImplementation</literal> 被设置为 <literal>"
+"com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple<"
+"/literal>。"
+
+#. Tag: para
+#: Chapter.xml:265
+#, no-c-format
+msgid ""
+"these settings are the default values for the properties and do not need to "
+"be specified if the local implementation is required."
+msgstr "这些设置都是这些属性的缺省值,如果使用本地实现的话,你不需要进行指定。"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Feedback.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Feedback.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Feedback.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,43 @@
+# translation of Feedback.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-24 11:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Feedback.xml:6
+#, no-c-format
+msgid "Feedback"
+msgstr "反馈"
+
+#. Tag: para
+#: Feedback.xml:7
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"如果你在本指南里发现了印刷错误,或者你有改进该手册的建议,我们希望听到你的声音!请提交报告到  <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> 并指明:产品:JBoss 企业级应用"
+"程序平台, 版本:<replaceable>&lt;version&gt;</replaceable>,组件:<emphasis>Doc</"
+"emphasis>。"
+"如果是改进本文档的建议,请尽量具体化;如果是其他错误,请指出章节号以及具体的内容"
+",这样我们就可以尽快改正。"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/JBoss_Transactions_Administrators_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Preface.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Preface.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Preface.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,131 @@
+# translation of Preface.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-16 11:05+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr "序言"
+
+#. Tag: title
+#: Preface.xml:14
+#, no-c-format
+msgid "What This Guide Contains"
+msgstr "本书包含的内容"
+
+#. Tag: para
+#: Preface.xml:15
+#, no-c-format
+msgid ""
+"The Administration Guide contains information on how to administer JBoss "
+"Transactions API 4.2.3."
+msgstr ""
+"《管理员指南》包含如何管理 JBoss "
+"Transactions API 4.2.3 的信息。"
+
+#. Tag: title
+#: Preface.xml:17
+#, no-c-format
+msgid "Audience"
+msgstr "读者"
+
+#. Tag: para
+#: Preface.xml:18
+#, no-c-format
+msgid ""
+"This guide is most relevant to engineers who are responsible for "
+"administration of JBoss Transactions API 4.2.3 installations."
+msgstr "本书面向负责 JBoss Transactions API 4.2.3 安装管理的工程师。"
+
+#. Tag: title
+#: Preface.xml:21
+#, no-c-format
+msgid "Prerequisites"
+msgstr "预备条件"
+
+#. Tag: para
+#: Preface.xml:22
+#, no-c-format
+msgid ""
+"In order to administer JBoss Transactions it is first necessary to "
+"understand that it relies on ArjunaCore for a lot of the transaction "
+"functionality. As such, it is important to read the ArjunaCore "
+"Administration Guide before attempting to administer JBoss Transactions."
+msgstr "为了管理 JBoss Transactions,你首先必须理解它的很多事务方面的功能依赖于 ArjunaCore。因此,在管理 JBoss Transactions 之前,先阅读《ArjunaCore 管理员指南》是很重要的。"
+
+#. Tag: title
+#: Preface.xml:25
+#, no-c-format
+msgid "Organization"
+msgstr "本书的结构"
+
+#. Tag: para
+#: Preface.xml:26
+#, no-c-format
+msgid "This guide contains the following chapters:"
+msgstr "本指南包含下面的章节:"
+
+#. Tag: para
+#: Preface.xml:29
+#, no-c-format
+msgid ""
+"Chapter 1, Administration of JBoss Transactions: describes how to administer "
+"JBoss Transactions, mainly by selecting the variant of JTA implementation: "
+"pure local or remote (allowing distributed transactions)."
+msgstr "第一章,JBoss Transactions 管理:描述如何使用不同的 JTA 实现来管理 JBoss Transactions:纯 local 或 remote 方式(允许分布式事务)。"
+
+#. Tag: title
+#: Preface.xml:34
+#, no-c-format
+msgid "Additional Documentation"
+msgstr "其他文档"
+
+#. Tag: para
+#: Preface.xml:35
+#, no-c-format
+msgid ""
+"In addition to this guide, the following guides are available in the JBoss "
+"Transactions API 4.2.3 documentation set:"
+msgstr ""
+"除了本指南外, JBoss "
+"Transactions API 4.2.3 的文档集里还有如下的文档:"
+
+#. Tag: para
+#: Preface.xml:38
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Release Notes: Provides late-breaking "
+"information about JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 发行注记:提供 JBoss Transactions API 4.2.3 的最新信息。"
+
+#. Tag: para
+#: Preface.xml:41
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Installation Guide: This guide provides "
+"instructions for installing JBoss Transactions API 4.2.3."
+msgstr "JBoss Transactions API 4.2.3 安装指南:提供 JBoss Transactions API 4.2.3 的安装说明。"
+
+#. Tag: para
+#: Preface.xml:44
+#, no-c-format
+msgid ""
+"JBoss Transactions API 4.2.3 Programmer’s Guide: Provides guidance for "
+"writing applications."
+msgstr "JBoss Transactions API 4.2.3 程序员指南:指导如何编写相关应用程序。"
+

Added: labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Revision_History.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Revision_History.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Administrators_Guide/zh-CN/Revision_History.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Revision_History.po to
+# Language zh-CN translations for JBoss_Transactions_Administrators_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:49+0000\n"
+"PO-Revision-Date: 2008-06-24 11:43+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: author
+#: Revision_History.xml:9
+#, no-c-format
+msgid "<firstname></firstname> <surname></surname> <email></email>"
+msgstr "<firstname></firstname> <surname></surname> <email></email>"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,13 @@
+#Makefile for Red Hat Documentation
+#Created by Jeff Fearn <jfearn at redhat.com>
+#Copyright Red Hat Inc. 2006
+
+XML_LANG	= en-US
+
+BRAND = JBoss
+
+#OTHER_LANGS	= de-DE es-ES fr-FR ja-JP pt-BR zh-CN
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/Makefile
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,702 @@
+# translation of Appendix_A.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 07:07+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Objektspeicher-Implementierungen"
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "Der ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "In diesem Anhang sehen wir uns die verschiedenen Implementierungen des TxCore-Objektspeichers an und liefern Richtlinien dazu, wie andere Implementierungen erstellt und in eine Anwendung eingebunden werden können."
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Diese Release von JBossTS enthält mehrere verschiedene Implementierungen eines grundlegenden Objektspeichers. Jede dient einem bestimmten Zweck und ist hierfür optimiert. Alle Implementierungen sind vom "
+"<interface>ObjectStore</interface>-Interface abgeleitet. Dies definiert die Mindestoperationen, die bereitgestellt werden müssen, damit eine Objektspeicher-Implementierungen von JBossTS verwendet werden kann. Die standardmäßige Objektspeicher-Implementierungen kann durch  Einstellen der <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property>-Propertyvariablen "
+"auf einen der unten beschriebenen Werte zur Runtime außer Kraft gesetzt bzw. ersetzt werden."
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+"JBossTS Programmierer müssen in der Regel nicht direkt mit den Objektspeicher-Implementierungen interagieren außer dass sie sie erstellen (sogar das ist bei Verwendung des Standard-Speichertyps nicht nötig, da JBossTS die Speicher wie nötig erstellt). Alle Speicher manipulieren Instanzen der Klasse <classname>ObjectState</classname>, die mittels eines Typs "
+"(via der type()-Operation des Objekts) und einer Uid benannt werden. Für Zwecke atomischer Aktionen können Objektstati im Speicher zwei verschiedene Stati unterscheiden: "
+"OS_COMMITTED und OS_UNCOMMITTED. Ein Objektstatus beginnt mit dem OS_COMMITTED "
+"Status, aber es kann bei Modifizierung unter Kontrolle einer atomischen Aktion ein zweiter, nämlich der OS_UNCOMMITTED Status geschrieben werden. Wird die Aktion festgeschrieben, so ersetzt dieser zweite Status den ursprünglichen und wird zu OS_COMMITTED. Wird die Aktion abgebrochen, so wird dieser zweite Status einfach verworfen. Alle in dieser Release bereitgestellten Implementierungen handhaben diese Statusänderungen indem sie Schattenkopien der Objektstati verwenden, "
+"jedoch ist jede andere Implementierung, die diese Abstraktion pflegt erlaubt. Unter Kontrolle des Crash Recovery Systems können Objektstati verborgen (\"hidden\") sein (wodurch nicht mehr auf sie zugegriffen werden kann)."
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"Sie können die Inhalte eines Stores mittels der "
+"<methodname>allTypes</methodname> und <methodname>allObjUids</methodname>-Operationen durchsuchen. <methodname>allTypes</methodname> liefert einen "
+"<type>InputObjectState</type> der alle Typennamen aller Objekte in einem Store enthält, terminiert durch einen Null-Namen. <methodname>allObjUids</methodname> liefert einen <type>InputObjectState</type>, der alle Uids aller Objekte eines gegebenen Typs liefert, terminiert durch die Sonder-"
+"<methodname>Uid.nullUid()</methodname>."
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "Persistente Objektspeicher"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "Dieser Abschnitt liefert einen kurzen Überblick über die Charakteristika und Optimierungen jeder der verfügbaren Implementierungen des persistenten Objektspeichers. Persistente Objekt-Stati werden auf die Struktur des Dateisystems gemappt, das durch das Host-Betriebssystem unterstützt wird."
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "Gängige Funktionalität"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "Zusätzlich zu den bereits zuvor erwähnten Features folgen alle gelieferten persistenten Objektspeicher folgenden Regeln:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Jeder Objektstatus wird in seiner eigenen Datei gespeichert, die unter Verwendung der <code>Uid</code> des Objekts benannt wird."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "Der Typ eines Objekts (wie durch die <methodname>type()</methodname>-Operation angegeben) bestimmt das Verzeichnis, in dem das Objekt platziert wird."
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "Alle diese Stores besitzen ein gemeinsames Root-Verzeichnis, das bei der Konfiguration von JBossTS festgelegt wird. Dieser Verzeichnisname wird aller Store-spezifischen Root-Information automatisch vorangestellt."
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Alle Speicher besitzen auch die Idee eines lokalisierten Root-Verzeichnisses, dem zur Bestimmung des endgültigen Objektnamens automatisch der Objekttyp vorangestellt wird. Der lokalisierte Root-Name wird festgelegt, wenn der Speicher erstellt wird. In der Statndardeinstellung lautet der lokalisierte Root-Name <code>defaultStore</code>."
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "Der Schattenspeicher"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr "Dies ist die ursprüngliche Version des Objektspeichers wie sie in vorherigen Releases bereitgestellt wurde und sie wird durch die Klasse <classname>ShadowingStore</classname> implementiert. Es ist einfach aber langsam. Zur Repräsentation des Objekts werden zwei Dateipaare verwendet (die Schattenversion und die festgeschriebene Version) und Dateien werden geöffnet, gesperrt, bearbeitet, entsperrt und geschlossen, jedesmal wenn es zu einer Interaktion mit dem Objektspeicher kommt. Daher können signifikante Mengen an Zeit im System mit dem Öffnen, Schließen und Umbenennen von Dateien verbracht werden, Vorgängen also die alle sehr aufwendig sind."
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>ShadowingStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "Kein Sperren auf Dateiebene"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"Da transaktionale Objekte durch "
+"<methodname>LockManager</methodname> Nebenläufigkeitskontrolle unterliegen, ist es nicht notwendig auf Dateiebene weitere Sperren hinzuzufügen, da die grundlegende Implementierung des ShadowingStore "
+"diesen Zweck erfüllt. Die standardmäßige Objektspeicherimplementierung für JBossTS, <methodname>ShadowNoFileLockStore</methodname> hängt daher vom Sperren auf Benutzerebene ab. Dies führt zu einer besseren Performance als dies bei der "
+"<methodname>ShadowingStore</methodname>-Implementierung der Fall ist."
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>ShadowNoFileLockStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "Der \"gehashte\" Speicher"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "Der <code>HashedStore</code> besitzt dieselbe Struktur für Objektstati wie die Schattenspeicher, besitzt jedoch eine alternative Verzeichnisstruktur, die besser dafür geeignet ist, große Mengen an Objekten deselben Typs zu speichern. Bei der Verwendung sind gespeicherte Objekte auf einem Satz von Verzeichnisses verteilt durch Anwendung einer Hashing-Funktion zur Uid des Objekts. Standardmäßig werden 255 Unterverzeichnisse verwendet. Dies lässt sich jedoch durch Einstellen der <code>HASHED_DIRECTORIES</code>-Umgebungsvariablen entsprechend außer Kraft setzen."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>HashedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"Da transaktionale Objekte durch "
+"<methodname>LockManager</methodname> Nebenläufigkeitskontrolle unterliegen, ist es nicht notwendig auf Dateiebene weitere Sperren hinzuzufügen, da die grundlegende Implementierung des ShadowingStore "
+"diesen Zweck erfüllt. Die standardmäßige Objektspeicher-Implementierung für JBossTS, <methodname>ShadowNoFileLockStore</methodname> hängt daher vom Sperren auf Benutzerebene ab. Dies führt zu einer besseren Performance als dies bei der "
+"<methodname>ShadowingStore</methodname>-Implementierung der Fall ist."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "Der <code>HashedStore</code> besitzt dieselbe Struktur für Objektstati wie die Schattenspeicher, besitzt jedoch eine alternative Verzeichnisstruktur, die besser dafür geeignet ist, große Mengen an Objekten deselben Typs zu speichern. Bei der Verwendung sind gespeicherte Objekte auf einem Satz von Verzeichnisses verteilt durch Anwendung einer Hashing-Funktion zur Uid des Objekts. Standardmäßig werden 255 Unterverzeichnisse verwendet. Dies lässt sich jedoch durch Einstellen der <code>HASHED_DIRECTORIES</code>-Umgebungsvariablen entsprechend außer Kraft setzen."
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "Der JDBC-Store"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 "Der <methodname>JDBCStore</methodname> verwendet eine JDBC-Datenbank zur Speicherung persistenter Objektstati; wenn zusammen mit den transaktionalen Objekten für Java API verwendet, ist Support für verschachtelte Transaktionen verfügbar. Bei der aktuellen Implementierung werden alle Objektstati als \"Binary Large Objects\" (BLOBs) innerhalb derselben Tabelle gespeichert. Die durch BLOBs vorgegebene Größe für den Objektstatus beträgt 64k; beim Versuch einen Objektstatus zu speichern, der diese Größe überschreitet, wird ein Fehler gemeldet und der Status nicht gespeichert. Anschließend wird das Zurücksetzen der Transaktion erzwungen."
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"Wird der JDBC-Objektspeicher verwendet, so muss die Anwendung eine Implementierung des folgenden Interface liefern, das sich im <code>com.arjuna."
+"ats.arjuna.objectstore</code>-Paket befindet:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 ""
+"Die Implementierung dieser Klasse ist verantwortlich dafür, dass die "
+"<emphasis>Verbindung</emphasis> bereitgestellt wird, die der JDBC ObjectStore zur Speicherung und Wiederherstellung von Objekt-Stati verwenden wird:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<methodname>getConnection</methodname>: liefert die zu verwendende Verbindung. Diese Methode wird aufgerufen, wenn eine Verbindung benötigt wird und die Implementierung die notwendige Richtlinie zur Bestimmung welche Verbindung wiedergegeben werden soll verwenden soll. Diese Methode muss nicht mehr als einmal dieselbe Verbindungsinstanz wiedergeben."
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: diese Methode wird aufgerufen, um eine der durch getConnection erhaltenen Verbindungen wiederzugeben. Verbindungen werden wiedergegeben, wenn bei deren Verwendung Fehler auftreten."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: kann zur Weitergabe zusätzlicher arbiträrer Informationen an die Implementierung verwendet werden."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"Der JDBC-Objektspeicher wird anfangs die Anzahl der in der <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property>-Property definierten Verbindungen anfragen und wird nicht mehr als in der <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>-Property festgelegt verwenden."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+"Die Implementierung des zu verwendenden <interfacename>JDBCAccess</interfacename>-Interface sollte in der <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>-Property-Variablen eingestellt werden."
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>JDBCStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"Ein JDBC Object Store kann zum managen des Transaktionsprotokolls verwendet werden. In diesem Fall sollte die Implementierung des Transaktionsprotokolls auf <property>JDBCActionStore</property> eingestellt sein und die <methodname>JDBCAccess</"
+"methodname>-Implementierung muss über die <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>-Property-Variable geliefert werden. In diesem Fall lautet der Standard-Tabellenname JBossTSTxTable."
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "Es ist möglich diesselbe JDBCAccess-Implementierung sowohl für den Benutzer-Objektspeicher als auch das Transaktionsprotokoll zu verwenden."
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "Der \"gecachte\" Speicher"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 ""
+"Dieser Objektspeicher wird im \"gehashten\" Objektspeicher verwendet, schreibt und liest Stati aber nicht sofort in den persistenten Sicherheitsspeicher (\"backing Store\"). Die Stati bleiben in einem "
+"selbstlöschenden Speicher-Cache, das entweder periodisch oder wenn voll bereinigt wird. Die mit diesem Objektspeicher assoziierte Fehlfunktionssemantik unterscheidet sich von normalen Objektspeichern, da eine Fehlfunktion zu einem Verlust der Stati im Cache führen kann."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "Wird die Objektspeicher-Implementierung außer Kraft gesetzt, so ist der Typ dieses Objektspeichers <type>CachedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "Der Store kann mit den folgenden Properties konfiguriert werden:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> setzt die Anzahl interner Speicher, zu denen die Stati gecacht werden sollen. Der Standardwert beträgt 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> ist die maximale Größe, die das Cache erreichen kann, ehe eine Bereinigung ausgelöst wird. Der Standard sind 10240 Bytes."
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> ist die maximale Anzahl entfernter Posten, die das Cache enthalten kann, ehe eine Bereinigung ausgelöst wird. Standardmäßig werden Aufrufe zur Entfernung eines Status in diesem Cache entweder den Status aus dem Cache entfernen, aber eine leere Stelle hinterlassen (statt den Eintrag sofort zu entfernen, was die Performance des Cache beeinflussen würde). Wenn ausgelöst, werden diese Einträge aus dem Cache entfernt. Der Standardwert beträgt das Doppelte des \"Hash\"."
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> ist die maximale Postenzahl auf die das Cache anwachsen darf, ehe eine Bereinigung stattfindet. Der Standardwert ist 100."
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> setzt die Zeit in Millisekunden für die periodische Bereinigung des Caches. Der Standardwert beträgt 120 Sekunden."
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> legt fest, ob Bereinigungen des Cache mit der Disk synchronisiert werden. Die Standardeinstellung lautet OFF. Um dies zu aktivieren setzen Sie diese Einstellung auf ON."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# translation of Appendix_B.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 07:09+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "Klassendefinitionen"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "Dieser Anhang enthält eine Übersicht derjenigen Klassen, die der Anwendungsprogrammierer in der Regel benutzt. Ziel dieses Anhangs ist es, ein schnell zu überblickendes Referenzhandbuch für diese Klassen beim Schreiben von Anwendungen in TxCore zu liefern. Zur besseren Klarheit werden nur die öffentlichen und geschützten Interfaces der Klassen angegeben."
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "Klassenbibliothek"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Sperr-Manager"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-05 10:05+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat Dokumentationsgruppe"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,46 @@
+# translation of Book_Info.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-29 09:34+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "JBoss TS Handbuch für Programmierer"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "JBoss Enterprise SOA Plattform"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr ""
+"Dieses Buch ist die Enterprise Application Platform Edition des JBoss TS "
+"Handbuchs für Programmierer"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1014 @@
+# translation of Chapter.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-28 20:01+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "Übersicht"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"Dieses Kapitel enthält eine Beschreibung der Verwendung der <classname>TxCore</classname> Transaction-Engine und der <firstterm>Transactional Objects for "
+"Java</firstterm> Klassen und Facilities. Die in diesem Kapitel erwähnten Klassen sind der Schlüssel zum Schreiben von fehlertoleranten Anwednugen unter Verwendung von Transkationen. Daher wollen wir sie nachdem wir sie beschrieben haben bei der Erstellung einer einfachen Applikation anwenden. Die in diesem Kapitel beschriebenen Klassen "
+"finden Sie in den <classname>com.arjuna.ats.txoj</classname> und "
+"<classname>com.arjuna.ats.arjuna</classname> Paketen."
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – die Transaction-Engine"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr "Bei der objektorientierten Ansicht mussten die zur Konstruktion zuverlässiger distribuierter Anwendungen nötigen Mechanismen dem Programmierer auf objektorientierte Weise präsentiert werden. Einige Mechanismen müssen vererbt werden, so etwa Nebenläufigkeitskontrolle und Status-Management; andere Mechanismen wie Objektspeicherung und Transaktionen werden als <classname>TxCore</classname>-Objekte implementiert und wie jedes andere Objekt erstellt und manipuliert."
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"Wenn im Handbuch die Rede von der Verwendung von \"Facilities\" zur Persistenz und Nebenläufigkeitskontrolle ist, so wird von der Verwendung der Klassen von <emphasis>Transaktionalen Objekten für Java</"
+"emphasis> (TXOJ) ausgegangen. Ist dies nicht der Fall, so ist der Programmierer für alle diese Aspekte verantwortlich."
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "<classname>TxCore</classname> nutzt objektorientierte Techniken, um Programmierern ein Toolkit von Java-Klassen zu bieten, von dem Anwendungsklassen erben können um gewünschte Properties zu erhalten, wie etwa Persistenz und Nebenläufigkeitskontrolle. Diese Klassen bilden eine Hierarchie von der ein Teil unten dargestellt ist und später in diesem Dokument beschrieben wird."
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Txcore-Klassenhierarchie"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+"Abgesehen vom Festlegen der Bereiche der Transaktionen und des Setzens entsprechender Sperren innerhalb von Objekten, hat der Programmierer keine weiteren Verantwortlichkeiten: <classname>TxCore</classname> und <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) stellen sicher, dass transaktionale Objekte bei den entsprechenden Transaktionen registriert und durch diese betrieben werden und dass Crash-Recovery Mechanismen bei Fehlfunktionen automatisch aufgerufen werden."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Objekt-Stati speichern"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"<classname>TxCore</classname> muss aus verschiedenen Gründen dazu in der Lage sein, sich an den Status eines Objekts - darunter auch Recovery (der Status repräsentiert einen vergangenen Status des Objekts) und Persistenz (der Status repräsentiert den endgültigen Status eines Objekts zum Zeitpunkt der Beendigung der Anwendung) - zu erinnern. Da diese Anforderungen gemeinsame Funktionalitäten besitzen, werden sie alle unter Verwendung desselben Mechanismus implementiert: die Klassen <classname>InputObjectState</classname> und <classname>OutputObjectState</classname>. Die Klassen warten ein internes Array, in das unter Verwendung der entsprechenden <command>pack</command> (<command>unpack</"
+"command>) Operationen durchgängig Instanzen des Standard-Typs gepackt (entpackt) werden. Die Größe dieses Zwischenspeichers wird automatisch und wie erforderlich angepasst, falls nicht ausreichend Platz verfügbar ist. Sämtliche Instanzen werden in einem Standardformular (die sogenannte \"Network Byte Order\") im Zwischenspeicher gespeichert, damit sie unabhängig von der verwendeten Maschine sind. Jedes andere architekturunabhängige Format (wie XDR "
+"oder ASN.1) könnte einfach implementiert werden, indem die Operationen durch die der benötigten Codierung entsprechende ersetzt werden."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "Der Objektspeicher (\"Object Store\")"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 ""
+"Implementierungen von Persistenz können von durch den Java SecurityManager gemachten Einschränkungen betroffen sein. Der mit "
+"<classname>TxCore</classname> gelieferte Objektspeicher (\"Object Store\") ist daher unter Verwendung von Techniken von Interface/Implementierung implementiert. Die aktuelle Distribution besitzt Implementierungen, die Objekt-Stati in das lokale Dateisystem oder Datenbank schreiben und Remote-Implementierungen, bei denen das Interface einen Client-Stub (Proxy) bei Remote-Diensten verwendet."
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "Persistenten Objekten werden eindeutige Bezeichner zugewiesen (Instanzen der Uid-Klasse), wenn sie erstellt werden und dies wird verwendet, um sie innerhalb des Object Store zu identifizieren. Stati werden unter Verwendung der <literal>read_committed</literal>-Operation gelesen und mittels <literal>write_(un)committed</literal>-Operationen geschrieben."
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "Wiederherstellung (\"Recovery) und Persistenz"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"Die Root der Klassenhierarchie ist die Klasse <classname>StateManager</"
+"classname>. Diese Klasse ist für Objektaktivierung und -deaktivierung sowie Objekt-Recovery zuständig. Die vereinfachte Signatur der Klasse lautet:"
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "Ein Objekt kann drei verschiedene Formen haben. Es kann einfach wiederherstellbar sein, in welchem Falle der <classname>StateManager</classname> versuchen wird, die entsprechenden Recovery-Informationen für das Objekt zu generieren und zu warten. Die Lebensdauer solcher Objekte überschreitet nicht diejenige des Anwendungsprogramms, das sie erstellt. Objekte können wiederherstellbar und persistent sein, in welchem Fall die Lebensdauer des Objekts als größer als die der erstellenden oder zugreifenden Anwendung angenommen wird, so dass neben der Wartung der Recovery-Informationen der <classname>StateManager</classname> versucht einen eventuell vorhandenen persistenten Status für das Objekt durch Aufruf der \"activate\" (\"deactivate\") Operation zu entsprechenden Zeiten automatisch zu laden (löschen). Zu guter letzt kann das Objekt auch keine dieser Fähigkeiten besitzen, in welchem Fall keine Recovery-Informationen aufbewahrt werden und die Objektaktivierung bz!
 w. -deaktivierung nie automatisch versucht wird. "
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Ist ein Objekt wiederherstellbar oder wiederherstellbar und persistent so ruft <classname>StateManager</classname> die Operationen "
+"<command>save_state</command> (während der Durchführung von <command>deactivate</command>) und <command>restore_state</command> (während der Durchführung von activate) an verschiedenen Punkten während der Ausführung der Anwendung auf. Diese Operationen müssen vom Programmierer "
+"implementiert werden, da <classname>StateManager</"
+"classname> Statusänderungen auf Benutzerebene nicht aufspüren kann. (Wir prüfen die automatische Generierung von standardmäßigen <command>save_state</command> und "
+"<command>restore_state</command> Operationen, die es dem Programmierer erlauben, dies außer Kraft zu setzen, wenn anwendungsspezifisches Wissen eingesetzt werden kann, um die Effizienz zu erhöhen). Dies verleiht dem Programmierer die Möglichkeit zu entscheiden, welche Teile des Status eines Objekts persistent gemacht werden sollten. Für eine Tabellenkalkulation ist es möglicherweise nicht notwendig alle Einträge zu speichern, wenn einige der Werte einfach erneut berechnet werden können. Die <command>save_state</command>-Implementierung für eine Klasse "
+"<classname>Example</classname>, die ganzzahlige Teilvariablen namens A, B und C besitzt, könnte einfach wie folgt lauten:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+"Ein Objekt kann drei verschiedene Formen haben. Es kann einfach <emphasis>wiederherstellbar</emphasis> sein, in welchem Falle der <classname>StateManager</classname> versuchen wird, die entsprechenden Recovery-Informationen für das Objekt zu generieren und zu warten. Die Lebensdauer solcher Objekte überschreitet nicht diejenige des Anwendungsprogramms, das sie erstellt. Objekte können <emphasis>wiederherstellbar und persistent</emphasis> sein, in welchem Fall die Lebensdauer des Objekts als größer als die der erstellenden oder zugreifenden Anwendung angenommen wird, so dass neben der Wartung der Recovery-Informationen der <classname>StateManager</classname> versucht einen eventuell vorhandenen persistenten Status für das Objekt durch Aufruf der <classname>activate</classname> (<classname>deactivate</"
+"classname>) Operation zu entsprechenden Zeiten automatisch zu laden (löschen). Zu guter letzt kann das Objekt auch keine dieser Fähigkeiten besitzen, in welchem Fall keine Recovery-Informationen aufbewahrt werden und die Objektaktivierung bzw. -deaktivierung nie automatisch versucht wird."
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Ist ein Objekt <emphasis>wiederherstellbar</emphasis> (recoverable) oder <emphasis>wiederherstellbar und persistent</emphasis> so ruft der <classname>StateManager</classname> die Operationen <command>save_state</command> (während "
+"<command>deactivate</command> durchgeführt wird) und <command>restore_state</command> (während <command>activate</command> durchgeführt wird) an verschiedenen Punkten während der Ausführung der Anwendung auf. Diese Operationen müssen durch den Programmierer implementiert werden, das der <classname>StateManager</classname> Statusänderungen auf Benutzerebene nicht auffinden kann. (Wir prüfen die automatische Generierung von Standard <classname>save_state</classname> und <classname>restore_state</classname> Operationen, die es dem Programmierer gestatten, dies außer Kraft zu setzen, wenn applikationsspezifisches Wissen zur Verbesserung der Effizienz eingesetzt werden kann). Dies gibt dem Programmierer die Möglichkeit zu entscheiden, welche Teile des Status eines Objekts persistent gemacht werden sollten. Für eine Tabellenkalkulation etwa ist es vielleicht nicht notwendig alle Einträge zu speichern, wenn bestimmte Werte einfach erneut berechnet werden können. Die !
 <classname>save_state</classname>-Implementierung für eine Klasse "
+"<classname>Example</classname>, die ganzzahlige Teilvariablen namens A, B und C besitzt, könnte einfach wie folgt lauten:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"Es ist für alle <command>save_state</command> und "
+"<command>restore_state</command>-Methoden notwendig, <classname>super.save_state "
+"</classname>und <classname>super.restore_state</classname> aufzurufen. Dadurch sollen Crash-Recovery-Mechanismen unterstützt werden."
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "Der Lebenszyklus eines transaktionalen Objekts für Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"Man geht davon aus, dass ein nicht in Gebrauch befindliches persistentes Objekt in einem <emphasis>passiven</emphasis>-Status gehalten wird, wobei dessen Status sich in einem Objektspeicher befindet und auf Abruf <emphasis>aktiviert</emphasis> wird. Der fundamentale Lebenszyklus eines persistenten Objekts in <emphasis>TXOJ</emphasis> ist in <xref linkend="
+"\"figure_2\"/> dargestellt."
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "Der Lebenszyklus eines persistenten Objekts."
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "Das Objekt ist ursprünglich passiv und wird als eine Instanz der Klasse <classname>OutputObjectState</classname> im Objektspeicher gespeichert."
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr "Wenn durch eine Anwendung erforderlich, wird das Objekt automatisch aktiviert, indem es durch einen <command>read_committed</command>-Vorgang aus dem Speicher gelesen und dann durch den <command>restore_state</command>-Vorgang von einer <classname>InputObjectState</classname>-Instanz in ein vollwertiges Objekt konvertiert wird."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 ""
+"Ist die Anwendung mit dem Objekt fertig, so wird dieses durch Rückkonvertierung in eine <classname>OutputObjectState</classname>-Instanz "
+"mittels der <command>save_state</command>-Operation deaktiviert, und wird dann mittels write_uncommitted als \"Schattenkopie\" "
+"in den Objektspeicher gespeichert. Diese Schattenkopie kann festgeschrieben werden, in dem die vorangegangene Version mittels "
+"<command>commit_state</command>-Operation festgeschrieben wird. Die Existenz von Schattenkopien wird normalerweise durch das Transaktionssystem vor dem Programmierer verborgen. Objekt-Deaktivierung erfolgt normalerweise nur dann, wenn die Transaktion der höchsten Ebene, innerhalb derer das Objekt aktiviert wurde, festgeschrieben wird."
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "Während seiner Lebensdauer kann ein persistentes Objekt viele Male aktiv und wieder passiv gemacht werden."
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "Der Nebenläufigkeits-Controller"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr ""
+"Der Nebenläufigkeits-Controller wird durch die Klasse "
+"<classname>LockManager</classname> implementiert, die ein vernünftiges Standardverhalten liefert und dem Programmierer gleichzeitig gestattet dieses außer Kraft zu setzen, falls es aufgrund der bestimmten Semantik der programmierten Klasse erforderlich sein sollte. Wie mit <classname>StateManager</classname> und Persistenz, wird auch auf die Implementierungen der Nebenläufigkeitssteuerung über Interfaces zugegriffen. Neben Zugriff auf Remote-Dienste beinhalten die aktuellen Implementierungen von für Interfaces verfügbare Nebenläufigkeitssteuerung:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "lokale Disk/Datenbank Implementierung, bei der Sperren persistent gemacht werden, indem sie in das lokale Datensystem oder die Datenbank geschrieben werden."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "eine rein lokale Implementierung, bei der Sperren innerhalb des Speichers der sie erstellenden virtuellen Maschine gewartet werden; diese Implemetierung bietet eine bessere Performance als wenn Sperren auf die lokale Disk geschrieben werden, aber Objekte können nicht zwischen virtuellen Maschinen geteilt werden. Wichtig ist, dass es sich um ein einfaches Java-Objekt handelt ohne durch den SecurityManager beeinflussbare Anforderungen"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "Das primäre Programmierer-Interface zum Nebenläufigkeitskontroller ist über die \"setlock\"-Operation. Standardmäßig erzwingt das Runtime-System strikte zwei-Phasen Sperren nach einer \"multiplen Reader\", \"single Writer\" Richtlinie auf pro Objekt Basis. Wie jedoch in <xref linkend=\"figure_1\"/> gezeigt ist es für Programmierer durch Vererbung von der <classname>Lock</classname>-Klasse möglich, ihre eigene Sperrimplementierung mit anderen Sperrkonfliktregeln bereitzustellen, um die <firstterm>type specific concurrency control</firstterm> zu aktivieren."
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "Sperrerwerb ist (notwendigerweise) unter Programmiererkontrolle, da ebenso wie <classname>StateManager</classname> nicht bestimmen kann ob eine Operation ein Objekt verändert <classname>LockManager</classname> nicht bestimmen kann, ob eine Operation eine Lese- oder Schreibsperre benötigt. Die Freigabe der Sperre (Lock Release) jedoch ist unter Kontrolle des Systems und erfordert kein weiteres Eingreifen durch den Programmierer. Dies stellt sicher, dass die zwei-Phasen Property ordnungsgemäß gewartet werden kann."
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"Die <classname>LockManager</classname>-Klasse ist primär verantwortlich für die Verwaltung von Anfragen zum Setzen"
+"einer Sperre oder dem Lösen einer Sperre an einem Objekt . Da sie jedoch vom <classname>StateManager</classname> abgeleitet ist, kann sie außerdem steuern, wo einige der vererbten Facilities aufgerufen werden. Zum Beispiel geht <classname>LockManager</classname> davon aus, dass das Setzen einer Schreibsperre voraussetzt, dass die aufrufende Operation im Begriff ist das Objekt zu modifizieren. Dies wiederum kann dazu führen, dass Recovery-Information gespeichert werden, falls es sich um ein wiederherstellbares Objekt handelt. Auf ähnliche Weise führt der erfolgreiche Erwerb einer Sperre dazu, dass \"activate\" aufgerufen wird."
+
+#. 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 "Der Code unten zeigt, wie wir versuchen können, eine Sperre an einem Objekt zu erhalten:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Die Transaktionsprotokoll-Engine (\"Transaction Protocol Engine\")"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 ""
+"Die Transaktionsprotokoll-Engine wird durch die "
+"<classname>AtomicAction</classname>-Klasse repräsentiert, die den "
+"<classname>StateManager</classname> verwendet, um ausreichende Informationen für Crash-Recovery Mechanismen zu speichern, um die Transaktion im Falle von Fehlfunktionen zu beenden. Sie besitzt Methoden zum Starten und Beenden der Transaktion sowie - für jene Situationen, in denen Programmierer ihre eigenen Ressourcen implementieren müssen - Methoden, um diese bei der aktuellen Transaktion zu registrieren. Da <emphasis>TxCore</emphasis> Sub-Transaktionen unterstützt, ist eine innerhalb einer bereits vorhandenen Transaktion begonnene Transaktion automatisch verschachtelt."
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "<emphasis>TxCore</emphasis> ist multipler Threads gewahr und erlaubt jedem Thread innerhalb einer Anwendung eine Transaktion zu teilen oder innerhalb seiner eigenen Transaktion auszuführen. Daher sind alle <emphasis>TxCore</emphasis>-Klassen auch Thread-sicher."
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "Das einfache Beispiel unten illustriert die Beziehungen zwischen Aktivierung (activation), Terminierung (termination) und Festschreibung (commitment):"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "Die Ausführung des obigen Codes beinhaltet die folgende Sequenz von Aktivitäten:"
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"Das Erstellen von Bindings zu persistenten Objekten; dies könnte die Erstellung von Stub-Objekten sowie einen Aufruf an Remote-Objekte beinhalten. Im Beispiel oben an ein bestehendes, durch <literal>Name-A</"
+"literal> identifiziertes Objekt und ein neues persistentes Objekt ein erneutes Binding hergestellt wird."
+"Ein Namensgebungssystem für Remote-Objekte wartet das Mapping zwischen Objektnamen und Speicherorten und wird in einem späteren Kapitel beschrieben."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "Start der atomischen Transaktion."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "Aufrufe von Operationen: Als Teil eines bestimmten Aufrufs ist die Objektimplementierung verantwortlich dafür sicherzustellen, dass im Lese- oder Schreibmodus eine Sperre existiert (vorausgesetzt es existiert kein Sperrkonflikt) und dass falls nötig eine Initialisierung mit dem letzten festgeschriebenen Status aus dem Objektspeicher stattfindet. Beim erstmaligen Sperrerwerb an einem Objekt innerhalb einer Transaktion wird der Status des Objekts falls möglich aus dem Objektspeicher eingeholt."
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "Festschreiben der Action der höchsten Ebene. Dies beinhaltet die Aktualisierung des Status bearbeiteter Objekte im Objektspeicher."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "Auflösen der zuvor erstellten Bindings."
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "Die Klassenhierarchie"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr "Die wichtigsten Klassen, aus denen die Hierarchieklasse <emphasis>TxCore</emphasis> besteht, sind unten abgebildet."
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"Programmierer fehlertoleranter Anwendungen werden in erster Linie mit den Klassen <classname>LockManager</classname>, <classname>Lock</classname> und <classname>AtomicAction</classname> zu tun haben. Andere für Programmierer wichtige Klassen sind <classname>Uid</classname>, und <classname>ObjectState</classname>. Die meisten <emphasis>TxCore</emphasis>-Klassen sind von der Grundklasse <classname>StateManager</classname> abgeleitet, die einfachste Facilities zum managen persistenter und wiederherstellbarer Objekte bereitstellt. Diese beinhalten Support für die Aktivierung und Deaktivierung von Objekten und statusbasierte Objekt-Recovery. Die Klasse <classname>LockManager</classname> verwendet die Facilities von <classname>StateManager</classname> und "
+"<classname>Lock</classname> um die Nebenläufigkeitskontrolle bereitzustellen (zwei-Phasen Sperre in der aktuellen Implemetierung), die für die Implementierung der Serialisierbarkeits-Property von atomischen Aktionen erforderlich ist. Die Implementierung von Facilities von atomischen Aktionen wird durch <classname>AtomicAction</classname> und "
+"<classname>TopLevelTransaction</classname> unterstützt."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr "Die meisten <emphasis>TxCore</emphasis>-Systemklassen sind von der Grundklasse <classname>StateManager</classname> abgeleitet, die einfachste Facilities zum managen persistenter und wiederherstellbarer Objekte bereitstellt. Diese beinhalten Support für die Aktivierung und Deaktivierung von Objekten und statusbasierte Objekt-Recovery. Die Klasse <classname>LockManager</classname> verwendet die Facilities von <classname>StateManager</classname> und liefert die Nebenläufigkeitskontrolle, die für die Implementierung der Serialisierbarkeits-Property von atomischen Aktionen erforderlich ist."
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"Nehmen wir ein einfaches Beispiel. Gehen wir davon aus, dass <classname>Example</classname> eine benutzerdefinierte persistente Klasse ist, entsprechend vom <classname>LockManager</classname> abgeleitet. Eine Anwendung, die eine atomische Transaktion Trans enthält, greift auf ein Objekt (genannt O) von Typ <classname>Example</"
+"classname> durch Aufruf von Operation op1 zu, welches zu Statusänderungen an O führt. "
+"Die Serialisierbarkeits-Property erfordert es, dass eine Schreibsperre an O erworben werden muss, ehe es modifiziert wird; daher sollte der Körper von op1 einen Aufruf an die "
+"<literal>setlock</literal>-Operation des Nebenläufigkeitskontrollers enthalten:"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr "Die durch die <classname>LockManager</classname>-Klasse bereitgestellte <literal>setlock</literal>-Operation, führt in diesem Fall die folgenden Funktionen durch:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Prüfung der Schreibsperrenkompatibilität (\"write lock\") mit aktuell vorhandenen Sperren, und falls erlaubt:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"Rufen Sie das <classname>StateManager</classname>-Operation \"activate\" auf, das den aktuellsten persistenten Status von O aus dem Objektspeicher lädt, falls nicht bereits der Fall. Rufen Sie dann die <classname>StateManager</classname>-Operation \"modified\" auf, die eine Instanz von entweder <classname>RecoveryRecord</classname> oder <classname>PersistenceRecord</classname> für O erstellen, je nachdem, ob O persistent war oder nicht (die Sperre ist eine <literal>WRITE</literal>-Sperre, daher muss der alte Status des Objekt vor der Modifizierung gespeichert werden) und in die "
+"<classname>RecordList</classname> von <classname>Trans</classname> eingefügt werden."
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr "Erstellen und Einfügen einer LockRecord-Instanz in der Trans-RecordList."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"Nehmen wir jetzt an, dass die Aktion <literal>Trans</literal> einige Zeit, nachdem die Sperre erworben wurde, abgebrochen wird. Dann bearbeitet die Zurücksetz-Operation (Rollback) von "
+"<classname>AtomicAction</classname> die mit <literal>Trans</literal> assoziierte<classname>RecordList</classname>-Instanz durch  Aufrufen einer entsprechenden <literal>Abort</literal>-Operation an den verschiedenen Einträgen. Die Implementierung dieser Operation durch die <classname>LockRecord</classname>-Klasse löst die <literal>WRITE</literal>-Sperre, während "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> den vorherigen Status von O wiederherstellt."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""
+"Es ist wichtig, sich dessen bewusst zu sein, dass die oben genannten Arbeiten automatisch von <emphasis>TxCore</emphasis> für den Anwendungsprogrammierer durchgeführt werden. Der Programmierer muss die Transaktion lediglich starten und eine entsprechende Sperre setzen; <emphasis>TxCore</emphasis> und <emphasis>Transactional "
+"Objects for Java</emphasis> kümmern sich um die Teilnehmerregistrierung, Persistenz, Nebenläufigkeitskontrolle und Recovery."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1793 @@
+# translation of Chapter_02.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-28 21:34+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "Verwendung von TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+"In diesem Abschnitt beschreiben wir <emphasis>TxCore</emphasis> und "
+"<emphasis>Transaktionale Objekte für Java</emphasis> ausführlicher und zeigen, wie dies für die Konstruktion transaktionaler Anwendungen verwendet werden kann."
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "Status-Management"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "Objekt-Stati"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"<emphasis>TxCore</emphasis> muss aus verschiedenen Gründen in der Lage sein, sich an den Status eines Objekts zu erinnern, darunter Recovery (der Status repräsentiert einige vergangene Stati des Objekts) und für Persistenz (der Status repräsentiert den letzten Status eines Objekts bei Terminierung der Anwendung). Da alle diese Anforderungen eine gemeinsame Funktionalität benötigen, werden sie "
+"unter Verwendung desselben Mechanismus implementiert - der Klassen <classname>Input/OutputObjectState</classname> "
+"und <classname>Input/OutputBuffer</classname>."
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"Die <classname>Input/OutputBuffer</classname>-Klasse pflegt einen internen Array, in dem Instanzen der Standard-Javatypen mittels der Pack- (Entpack-) Operationen zusammen "
+"gepackt (entpackt) werden können. Die Größe dieses Zwischenspeichers wird automatisch angepasst wie erforderlich, falls kein ausreichender Platz vorhanden sein sollte. Die Instanzen werden alle in einem Standardformular in einem Zwischenspeicher gespeichert (sogenannte \"Network Byte\"-Reihenfolge), um sie rechnerunabhängig zu machen."
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr "Die Klasse <classname>Input/OutputObjectState</classname> liefert die gesamte Funktionalität von <classname>Input/OutputBuffer</classname> (durch Vererbung) aber fügt zwei zusätzliche Instanzvariablen hinzu, die die Uid und den Typ von Objekt für den die <classname>Input/OutputObjectState</classname>-Instanz ein komprimiertes Abbild ist, kennzeichnen. Diese werden beim Zugriff auf den Objektspeicher während Speicherung und Abruf des Objektstatus verwendet."
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "Der Object Store"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "Der mit <emphasis>TxCore</emphasis> gelieferte Objektspeicher besitzt absichtlich ein relativ eingeschränktes Interface, damit er auf vielfältige Weise implementiert werden kann. Die Objektspeicher werden im \"shared Memory\" implementiert; im Unix Dateisystem (in mehreren verschiedenen Formen); und als von Remote aus zugreifbaren Speicher. Vollständigere Informationen zu den in <emphasis>TxCore</emphasis> verfügbaren Objektspeichern finden Sie im Anhang."
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 "Wie mit allen <emphasis>TxCore</emphasis>-Klassen sind die standardmäßigen Objektspeicher reine Java-Implementierungen; um auf das \"shared Memory\" und andere komplexere Objektspeicher-Implementierungen zuzugreifen ist die Verwendung nativer Methoden nötig."
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"Alle Objektspeicher enthalten und rufen Instanzen der Klasse "
+"<classname>Input/OutputObjectState</classname> ab. Diese Instanzen werden durch die Uid und Typ von Objekt, den sie repräsentieren benannt. Stati werden mittels der <command>read_committed</command>-Operation gelesen und vom System mittels <command>write_uncommitted</command>-Operation geschrieben. Unter normaler Operation überschreiben "
+"neue Objekt-Stati alte Objekt-Stati nicht, sondern werden als Schattenkopien geschrieben. Diese Schattenkopien ersetzen die ursprünglichen nur wenn die <command>commit_state</command>-Operation aufgerufen wird. Normalerweise wird sämtliche Interaktion mit dem Objektspeicher durch <emphasis>TxCore</emphasis>-Systemkomponente wie erforderlich durchgeführt, obwohl das Vorhandensein von Schattenversionen von Objekten im Speicher dem Programmierer verborgen bleiben."
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"Wird ein transaktionales Objekt festgeschrieben, so ist es notwendig bestimmte Statusänderungen zu persistieren, damit es im Falle einer Fehlfunktion wiederhergestellt werden kann und dann entweder weiter festgeschrieben oder aber zurückgesetzt werden kann. Bei Verwendung "
+"<emphasis>Transaktionaler Objekte für Java</emphasis>, kümmert sich <emphasis>TxCore</emphasis> automatisch um dies. Um ACID-Properties zu garantieren, müssen diese Statusänderungen in die Persistenzspeicher-Implementierung bereinigt werden, ehe die Transaktion mit der Festschreibung fortfahren kann;"
+"ist dies nicht der Fall, so könnte die Anwendung annehmen, dass die Transaktion festgeschrieben wurde, wenn tatsächlich innerhalb des Betriebssystem-Caches noch Statusänderungen vorhanden sein könnten, die bei einer späteren Fehlfunktion des Rechners verloren gehen könnten. Standardmäßig stellt <emphasis>TxCore</emphasis> sicher, dass solche Statusänderungen bereinigt werden."
+"Allerdings kann dies signifikante Performance-Nachteile bei der Applikation mit sich bringen. Um transaktionale Bereinigungen des Objektstatus zu vermeiden, setzen Sie die "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal>-Variable auf OFF."
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr "Auswahl einer Objektspeicher-Implementierung"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"<emphasis>TxCore</emphasis> wird mit Support für mehrere verschiedene Objektspeicher-Implementierungen geliefert. Der Anhang beschreibt diese Implementierungen, wie eine bestimmte Implementierung auf pro Objekt Basis gewählt und konfiguriert wird (mittels der <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal>-Property-Variablen) und gibt außerdem an, wie zusätzliche Implementierungen geliefert werden können."
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+"Die <emphasis>TxCore</emphasis>-Klasse <classname>StateManager</classname> "
+"managt den Status eines Objekts und liefert alle grundlegenden Support-Mechanismen die von einem Objekt zu Status-Management Zwecken benötigt werden."
+"Der <classname>StateManager</classname> ist verantwortlich für das Erstellen und Registrieren entsprechender Ressourcen, die mit der Persistenz und Wiederherstellung des transaktionalen Objekts zu tun haben. Ist eine Transaktion verschachtelt, so pflanzt der "
+"<classname>StateManager</classname> diese Ressourcen zum Festschreibungszeitpunkt auch zwischen unter- und übergeordneten Transaktionen fort."
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+"Bei Objekten in <emphasis>TxCore</emphasis> wird von drei möglichen Grundtypen ausgegangen. Sie können einfach wiederherstellbar sein, in welchem Fall der "
+"<classname>StateManager</classname> versuchen wird, die entsprechenden Wiederherstellungsinformationen für das Objekt zu generieren und zu warten (wie Instanzen der Klasse "
+"<classname>Input/OutputObjectState</classname>). Die Lebensdauer solcher Objekte überschreitet diejenige des Anwendungsprogramms, das sie erstellt hat, nicht."
+"Objekte können wiederherstellbar und persistent sein, in welchem Fall davon ausgegangen wird, dass die Lebensdauer "
+"höher als die der erstellenden oder zugreifenden Anwendung ist, weswegen außer der Wartung von Wiederherstellungsinformationen der "
+"<classname>StateManager</classname> versuchen wird, einen existierenden persistenten Status für das Objekt durch Aufruf der <command>activate</command> (<command>deactivate</command>) Operation zu entsprechenden Zeiten zu laden (entfernen). Desweiteren können Objekte auch keine dieser Fähigkeiten besitzen, in welchem Fall keine Wiederherstellungsinformationen aufbewahrt werden und auch keine Aktivierungs-/Deaktivierungsversuche automatisch stattfinden. Diese Objekt-Property wird zum Konstruktionszeitpunkt des Objekts gewählt und kann danach nicht mehr geändert werden. Ein Objekt kann daher Wiederherstellungsfähigkeiten nicht zu irgendeinem zufälligen Zeitpunkt während seiner Lebensdauer gewinnen (oder verlieren)."
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+"Ist ein Objekt wiederherstellbar (oder persistent) dann ruft <classname>StateManager</classname> die Operationen <command>save_state</command> (während der Durchführung von <command>deactivation</command>), <command>restore_state</"
+"command> (während der Durchführung von \"activate\") und \"type\" an verschiedenen Punkten der Anwendungsausführung auf. Diese Operationen müssen vom Programmierer implementiert werden, da der <classname>StateManager</classname> keinen Zugriff auf eine Runtime-Beschreibung des Layout eines arbiträren Java-Objekts im Speicher besitzt und daher keine Standardrichtlinie für die Konvertierung der gespeicherten Version in deren passive Form implementieren kann. Die durch <classname>Input/OutputObjectState</classname> bereitgestellten Möglichkeiten jedoch machen diese Vorgehensweisen recht einfach. Die <command>save_state</command>-Implementierung für eine Klasse <classname>Example</classname>, die Teilvariablen namens A, B und C besitzt, könnte einfach wie folgt lauten:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+"Um Crash-Recovery für persistente Objekte zu unterstützen ist es notwendig, dass alle <command>save_state</command> und <command>restore_state</command>-Methoden von Benutzerobjekten <command>super.save_state</command> und "
+"<command>super.restore_state</command> aufrufen."
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "Die Typenmethode wird zur Bestimmung des Speicherorts im Objektspeicher verwendet, an dem der Status von Instanzen dieser Klasse gespeichert und schließlich wiederhergestellt wird. Es kann sich dabei um einen gültigen String handeln. Sie sollten es aber vermeiden, das Rautenzeichen (#) zu verwenden, da dieses für bestimmte Verzeichnisse reserviert ist, die <emphasis>TxCore</emphasis> benötigt."
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr "Die <command>get_uid</command>-Operation von <classname>StateManager</classname> liefert schreibgeschützten (\"read only\") Zugriff auf den internen Systemname eines Objekts für welchen Zweck ihn der Programmierer benötigt (wie die Registrierung des Namens in einem Name-Server). Der Wert des internen Systemnamens kann nur gesetzt werden, wenn das Objekt erstmals erstellt wird - entweder durch Bereitstellen eines expliziten Parameters oder durch Generierung eines neuen Bezeichners wenn das Objekt erstellt wird."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "Die <command>destroy</command>-Methode kann zum Entfernen des Objektstatus aus dem Objektspeicher verwendet werden. Es handelt sich dabei um eine atomische Operation, und daher wird der Status nur entfernt, wenn die Transaktion der höchsten Ebene, innerhalb derer der Aufruf erfolgt, festgeschrieben wird. Der Programmierer muss vor dem Aufruf dieser Operation exklusiven Zugriff auf das Objekt erlangen."
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 ""
+"Da Objektwiederherstellung und Persistenz besitzen komplementäre Voraussetzungen (der einzige Unterschied besteht im Speicherort der Statusinformationen und deren Zweck) kombiniert der <classname>StateManager</classname> effektiv das Management dieser beiden Properties in einen einzelnen Mechanismus. "
+"Das heißt er verwendet Instanzen des Klassen Input/OutputObjectState sowohl zu Wiederherstellungs- als auch zu Persistenzzwecken. Ein zusätzliches an die <command>save_state</command> und <command>restore_state</command> Operationen gegebenes Argument gestattet es dem Programmierer, den Zweck für einen jeweiligen Aufruf zu bestimmen, wodurch unterschiedliche Informationen für Wiederherstellungs- und Persistenzzwecke gespeichert werden."
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "Objektmodelle"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "<emphasis>TxCore</emphasis> unterstützt zwei Modelle für Objekte, die Einfluss auf die Implementierung des Status und der Nebenläufigkeitskontrolle eines Objekts haben, wie wir noch zeigen werden:"
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>: Nur ein einziges Exemplar des Objekts existiert innerhalb der Anwendung; dieses befindet sich innerhalb einer einzelnen JVM, und alle Clients müssen ihre Aufrufe an diesen Server richten. Dieses Modell bietet eine bessere Performance, aber stellt auch einen einzelnen Fehlfunktionspunkt dar, was in einer mehr-threadigen Umgebung das Objekt nicht vor Korrumpierung schützt, wenn ein einzelner Thread fehlschlägt."
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Einzelobjektmodell (Single Object Model)"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE: Logisch existiert eine einzelne Instanz des Objekts, aber Kopien derselben werden über verschiedene JVMs distribuiert; die Performance dieses Modells ist schlechter als beim SINGLE-Modell, aber es bietet bessere Isolation bei Fehlfunktionen."
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Multiples Objektmodell"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"Das Standardmodell ist SINGLE. Der Programmierer kann dies auf einer pro Objekt Basis außer Kraft setzen, indem er eine passende Instanz der <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname>-Klasse bei der Objektkonstruktion bereitstellt."
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "Das Modell kann in jeder nachfolgenden Instantiierung des Objekts geändert werden, d.h. es muss nicht während der gesamten Lebensdauer des Objekts dasselbe bleiben."
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr "Um eine passende <classname>ObjectName</classname>-Klasse bereitzustellen ist es notwendig, folgende Schritte durchzuführen:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "eine neue Instanz von <classname>ObjectName</classname> erstellen."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"das Objekt-Modellattribut mittels <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>-Name einstellen."
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "Zum Beispiel:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Zusammenfassung"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"Zusammendfassend kann man sagen, dass die <emphasis>TxCore</emphasis>-Klasse <classname>StateManager</"
+"classname> den Status eines Objekts managt und alle durch ein Objekt zum Zweck des Status-Management benötigten, grundlegenden Support-Mechanismen liefert. Einige Operationen müssen vom Entwickler der Klasse definiert werden. Diese Operationen sind: "
+"<command>save_state</command>, <command>restore_state</command> und "
+"<command>type</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"Immer dann aufgerufen, wenn der Status eines Objekts für mögliche zukünftige Verwendung gespeichert werden sollte - primär zu Wiederherstellungs- und Persistenzzwecken. Der "
+"<literal>ObjectType</literal>-Parameter gibt den Grund dafür an, warum "
+"<command>save_state</command> durch <emphasis>TxCore</emphasis> aufgerufen wurde. "
+"Dies gestattet es dem Programmierer verschieden Teile von Informationen im "
+"<classname>OutputObjectState</classname> zu speichern bereitgestellt als erster Parameter und in Abhängigkeit davon, ob der Status für Wiederherstellungs- oder Persistenzzwecke benötigt wird. Verweise (Pointers) auf andere <emphasis>TxCore</emphasis>-Objekte könnten einfach als Verweise für Wiederherstellungszwecke gespeichert werden, aber als Uids für Persistenzzwecke. Wie bereits gezeigt liefert die <classname>OutputObjectState</classname>-Klasse praktische Operationen, die das Speichern von Instanzen aller Grundtypen in Java gestatten. Um Crash-Recovery für persistente Objekte zu unterstützen ist es notwendig, dass alle <command>save_state</command>-Methoden <command>super.save_state</command> aufrufen."
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "<command>save_state</command> geht davon aus, dass ein Object intern konsistent ist und alle gespeicherten Variablen feste Werte haben. Es obliegt der Verantwortung des Programmierers sicherzustellen, dass dies auch tatsächlich der Fall ist."
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+"Immer dann aufgerufen, wenn der Status eines Objekts für den bereitgestellten wiederhergestellt werden muss. Wieder gestattet der zweite Parameter unterschiedliche Interpretationen des bereitgestellten Status. Um Crash-Recovery für persistente Objekte bereitzustellen ist es notwendig, dass alle <command>restore_state</command>-Methoden "
+"<command>super.restore_state</command> aufrufen."
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "String Typ ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"Der <emphasis>TxCore</emphasis>-Persistenzmechanismus erfordert einen Weg der Bestimmung des Typs eines Objekte als String damit er den Status des Objekts in/aus dem Object Store speichern/wiederherstellen kann. Der Konvention nach zeigt diese Information die Position der Klasse in der Hierarchie an. Zum Beispiel “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "Sehen Sie sich folgende grundlegende, von der <classname>StateManager</classname>-Klasse abgeleitete <classname>Array</classname>-Klasse an (in diesem Beispiel wird zur Illustrierung des Speicherns und Wiederherstellens des Status eines Objekts die highestIndex-Variable verwendet, um das höchste Element des Array mit nicht-Null Wert im Auge zu behalten):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+"Die <command>save_state</command>, <command>restore_state</command> und "
+"<command>type</command>-Operationen können wie folgt definiert werden:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Sperr-Management und Nebenläufigkeitskontrolle"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+"Nebenläufigkeitskontrollinformationen innerhalb von <emphasis>TxCore</emphasis> werden durch Sperren gewartet. Zwischen Objekten in verschiedenen Prozessen geteilte Sperren können innerhalb eines Sperrspeichers aufbewahrt werden, ähnlich wie in der zuvor vorgestellten Objektspeichereinrichtung. Der mit "
+"<emphasis>TxCore</emphasis> gelieferte Sperrspeicher besitzt mit Absicht ein relativ eingeschränktes Interface, so dass er auf vielfältige Weise implementiert werden kann. Zum Beispiel werden Sperrspeicher im geteilten Speicher implementiert; im Unix-Dateisystem (in mehreren verschiedenen Formen); und als per Remote zugänglicher Speicher. Weitere Informationen zu verfügbaren Objektspeichern in <emphasis>TxCore</emphasis> finden Sie im Anhang (Appendix)."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "Wie bei allen <emphasis>TxCore</emphasis>-Klassen handelt es sich bei den standardmäßigen Sperrspeichern um reine Java-Implementierungen; um auf den freigegebenen Speicher und andere komplexere Sperrspeicher-Implementierungen zuzugreifen, müssen native Methoden verwendet werden."
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Auswahl einer Sperrspeicher-Implementierung (\"lock store\")"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"<emphasis>TxCore</emphasis> bietet Support für mehrere verschiedene Objektspeicher-Implementierungen. Falls das verwendete Objektmodell SINGLE ist, so wird zur Wartung von Sperren kein Sperrspeicher benötigt, da Informationen über das Objekt nicht exportiert werden. Wird jedoch das MULTIPLE-Modell verwendet kann es sein, das verschiedene Run-time Umgebungen (Prozesse, Java Virtual Machines) sich die Nebenläufigkeitskontrollinformationen teilen müssen. Der Implementierungstyp von zu verwendendem Sperrspeicher kann für alle Objekte innerhalb einer bestimmten Ausführungsumgebung mittels <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>-Property Variablen festgelegt werden. Derzeit sind folgende Werte möglich:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "Hierbei handelt es sich um eine Implementierung im Speicher, die nicht standardmäßig die Freigabe gespeicherter Informationen zwischen Ausführungsumgebungen gestattet. Der Anwendungsprogrammierer ist für die Freigabe der gespeicherten Informationen verantwortlich."
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"Dieses ist die Standard-Implementierung und speichert die Sperrinformationen innerhalb des lokalen Dateisystems. Ausführungsumgebungen, die denselben Dateispeicher besitzen können also auch Informationen zur Nebenläufigkeitskontrolle teilen. Root des Dateisystems in das die Sperrinformationen geschrieben werden ist das <filename>LockStore</filename>-Verzeichnis innerhalb des <emphasis>TxCore</emphasis>-Installationsverzeichnisses. Dies kann zur Runtime entsprechend durch Einstellen der <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal>-Propertyvariablen außer Kraft gesetzt werden oder aber durch Platzieren des Speicherorts im <literal>CLASSPATH</literal>:"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>oder</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "Wird keine dieser Vorgehensweisen unternommen, so ist der Standard-Speicherort auf derselben Ebene wie das <filename>etc</filename>-Verzeichnis der Installation."
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+"Der Nebenläufigkeits-Controller wird durch den "
+"<classname>LockManager</classname> implementiert, der ein vernünftiges Standardverhalten liefert und dem Programmierer gleichzeitig gestattet dieses außer Kraft zu setzen, falls durch die bestimmte Semantik der programmierten Klasse erforderlich. Das primäre Programmierer-Interface für den Nebenläufigkeits-Controller ist via der Setlock-Operation. Standardmäßig erzwingt das <emphasis>TxCore</emphasis> Runtime-System strenges zwei-Phasen Sperren nach einem multiplen Reader, \"single writer\" Richtlinie auf einer pro Objekt Basis. Die Sperr-Erfassung obliegt der Kontrolle des Programmierers, da <classname>LockManager</classname> ebenso wenig bestimmen kann, ob eine Operation eine Lese- oder Schreibsperre benötigt, wie der <classname>StateManager</classname> bestimmen kann, ob eine Operation ein Objekt modifiziert. Die \"Lock-Release\" hingegen ist in der Regel unter Kontrolle des Systems und erfordert keine weiteren Maßnahmen seitens des Programmierers. Dies stellt !
 sicher, dass die zwei-Phasen Property korrekt gewartet werden kann."
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"Die <classname>LockManager</classname>-Klasse ist primär dafür verantwortlich Anfragen nach einer Sperreinstellung für ein Objekt oder  dem Lösen einer solchen Sperre zu verwalten. Da sie jedoch vom <classname>StateManager</classname> abgeleitet ist, kann sie außerdem steuern, wann einige der vererbten Einrichtungen aufgerufen werden. Zum Beispiel, wenn eine Anfrage zum Setzen einer Schreibsperre gewährt wird, ruft der "
+"<classname>LockManager</classname> \"modified\" in der direkten Annahme, dass der Aufruf zum Setzen einer Schreibsperre durch die aufrufende Operation bedeutet, dass das Objekt bearbeitet (modifiziert) werden soll. Dies wiederum kann dazu führen, dass Recovery-Informationen gespeichert werden, wenn es sich um ein wiederherstellbares Objekt handelt. Auf ähnliche Weise bewirkt eine erfolgreiche Sperre den Aufruf von <command>activate</command>."
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"Daher ist der <classname>LockManager</classname> direkt verantwortlich für das Aktivieren/Deaktivieren persistenter Objekte und die Registrierung von <classname>Resources</classname> zur Verwaltung der Nebenläufigkeitskontrolle. Durch Steuerung der <classname>StateManager</classname>-Klasse ist er außerdem verantwortlich für das Registrieren von <classname>Resources</classname> für persistente/wiederherstellbare Statusmanipulation und Objekt-Recovery. Der Anwendungsprogrammierer setzt einfach die entsprechenden Sperren, startet und beendet Transaktionen und erweitert die <command>save_state</command> und <command>restore_state</"
+"command>-Methoden von <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "Die <command>setlock</command>-Operation muss mit dem erforderlichen Sperr-Typ (<literal>READ</literal> / <literal>WRITE</literal>) sowie der Anzahl erneuter Versuche die Sperre zu erwerben, ehe aufgegeben wird, parametisiert werden. Erfolgt ein Sperr-Konflikt, so kommt es zu einem der folgenden Szenarios:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"Ist der Wert des Neuversuchs gleich <literal>LockManager.waitTotalTimeout</"
+"literal>, so wird der Thread, der <command>setlock</command> aufgerufen hat, gesperrt, bis die Sperre aufgehoben oder der gesamte festgelegte Timeout vergangen ist, und in welchem <literal>REFUSED</literal> wiedergegeben wird."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr "Falls die Sperre nicht gleich erhalten werden kann, so führt der <classname>LockManager</classname> eine bestimmte Anzahl von Malen Wiederholungsversuche durch, wobei er den festgelegten Zeitwert zwischen den fehlgeschlagenen Versuchen abwartet. Der Standard sind 100 Versuche, wobei jeder Versuch durch eine 0.25 Sekunden Verzögerung getrennt wird; die Zeit zwischen den Wiederholungsversuchen ist in Mikrosekunden festgelegt."
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 ""
+"Falls es zu einem Sperrkonflikt kommt, so führt die aktuelle Implementierung einfach einen Timeout der Sperranfragen durch, wodurch Deadlocks (Blockierungen) vermieden werden, statt dass ein vollständiges Deadlock-Aufspürschema aufgefunden werden müsste. Wird die angeforderte erhalten, so antwortet die \"Setlock\"-Operation mit dem Wert dem Wert <literal>GRANTED< andernfalls mit dem Wert "
+"<literal>REFUSED</literal>. Es obliegt der Verantwortung des Programmierers sicherzustellen, dass der restliche Code für eine Operation nur dann ausgeführt wird, wenn eine Sperranfrage gewährt wird. Nachfolgend sehen Sie Beispiele für die Verwendung der <command>setlock</command>-Operation."
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 ""
+"Der Mechanismus zur Kontrolle der Nebenläufigkeit ist in den atomischen Aktionsmechanismus integriert, wodurch sichergestellt wird, dass die entsprechenden Sperren für ein Objekt gewährt werden, das bei der aktuell laufenden atomischen Aktion registriert ist und wodurch außerdem sichergestellt wird, dass die Sperren zum richtigen Zeitpunkt freigegeben werden. Dies befreit den Programmierer von der Last, explizit innerhalb von atomischen Aktionen erworbene Sperren freigeben zu müssen. Werden Sperren jedoch für ein Objekt "
+"<emphasis>außerhalb</emphasis> des Bereichs einer atomischen Aktion erworben, so obliegt es der Verantwortung des Programmierers diese mittels der entsprechenden <command>releaselock</command>-Operation zu lösen."
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "Sperr-Richtlinien"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"Anders als bei vielen anderen Systemen handelt es sich bei Sperren in <emphasis>TxCore</emphasis> nicht um spezielle Systemtypen. Stattdessen handelt es sich einfach um Instanzen anderer "
+"<emphasis>TxCore</emphasis>-Objekte (die Klasse <classname>Lock</classname>, die ebenfalls vom <classname>StateManager</classname> abgeleitet ist, so dass wenn nötig persistiert werden und auf einfache Weise benannt werden können). Desweiteren besitzt der <classname>LockManager</classname> mit Absicht keine Kenntnisse der Semantik der tatsächlichen Richtlinien entsprechend derer Sperranfragen gewährt werden. Solche Informationen werden durch die Instanzen der tatsächlichen <classname>Lock</classname>-Klasse gewartet, die Operationen bereitstellen (die "
+"<literal>conflictsWith</literal>-Operation) mittels derer der <classname>LockManager</classname> bestimmen kann, ob bei zwei Sperren ein Konflikt existiert oder nicht. Diese Trennung ist wichtig, da sie es dem Programmierer gestattet neue Sperrtypen aus der grundlegenden "
+"<classname>Lock</classname>-Klasse abzuleiten und entsprechende Definitionen der Konflikt-Operationen bereitzustellen, so dass verbesserte Nebenläufigkeitsebenen möglich sind."
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"Die <classname>Lock</classname>-Klasse liefert eine <command>modifiesObject</command>-Operation, die der <classname>LockManager</classname> zur Bestimmung dazu verwendet, "
+"ob die Gewährung dieser Sperranfrage einen Aufruf an \"modified\" erforderlich macht. Diese Operation wird bereitgestellt, damit auch Sperr-Modi, die über einfaches Lesen und Schreiben hinausgehen, unterstützt werden können. Die gelieferte <classname>Lock</classname>-Klasse unterstützt die traditionellen multiplen \"Reader/Single Writer\"-Richtlinien"
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "Objektkonstruktion und -löschung"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "Wie schon erwähnt können <emphasis>TxCore</emphasis>-Objekte wiederherstellbar, wiederherstellbar und persistent oder keines von beidem sein. Zusätzlich besitzt jedes Objekt einen eindeutigen internen Namen. Diese Attribute können nur eingestellt werden, wenn das Objekt konstruiert wird. Der <classname>LockManager</classname> stellt daher zwei geschützte Konstruktoren für die Verwendung durch abgeleitete Klassen bereit, von denen jeder einen ganz bestimmten Zweck erfüllt:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "Dieser Konstruktor gestattet die Erstellung neuer Objekte, das heißt es wird davon ausgegangen, dass kein vorheriger Status existiert."
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+"Wie oben, gestattet dieser Konstruktor das Erstellen eines Objekts, das heißt es wird angenommen, dass kein vorheriger Status existiert. Der <literal>ObjectType</literal>-Parameter "
+"legt fest, ob ein Objekt einfach wiederherstellbar ist (angezeigt durch "
+"<literal>RECOVERABLE</literal>); wiederherstellbar und persistent (angezeigt durch <literal>ANDPERSISTENT</literal>) oder weder noch (<literal>NEITHER</literal>)."
+"Ist ein Objekt als persistent markiert, so wird der Status des Objekts in einem dieser Objektspeicher gespeichert. Der freigegebene Parameter ist nur von Bedeutung, wenn <literal>RECOVERABLE</literal>; ist <literal>attr</literal> nicht Null und das Objektmodell <literal>SINGLE</literal> (das Standardverhalten) dann wird der wiederherstellbare Status des Objekts innerhalb des Objekts selbst gewartet (d.h es besitzt keine externe Repräsentation), andernfalls wird ein \"in-memory\" (selbstlöschender) Objektspeicher zur Speicherung des Objektstatus zwischen atomischen Aktionen verwendet."
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Konstruktoren für neue persistente Objekte sollten atomische Aktionen untereinander verwenden. Dies stellt sicher, dass der Status des Objekts automatisch in den Objektspeicher geschrieben wird wenn die Aktion im Konstruktor festgeschrieben wird oder, falls eine einschließende Aktion vorhanden ist, wenn die entsprechende Aktion der höchsten Ebene festgeschrieben wird. Spätere Beispiele in diesem Kapitel führen dies weiter aus."
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "Dieser Konstruktor gestattet Zugriff auf ein bestehendes persistentes Objekt, dessen interner Name durch den <literal>objUid</literal>-Parameter geliefert wird. Bei mittels dieser Operation konstruierten Objekten wird normalerweise deren vorheriger Status (identifiziert anhand von <literal>objUid</literal>) aus einem Objektspeicher automatisch durch das System geladen."
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 ""
+"Wie oben gestattet der Konstruktor Zugriff auf ein bestehendes persistentes Objekt, dessen interner Name durch den <literal>objUid</literal>-Parameter geliefert wird. "
+"Bei mittels dieser Operation konstruierten Objekten wird normalerweise deren vorheriger Status (identifiziert anhand von <literal>objUid</literal>) aus einem Objektspeicher automatisch durch das System geladen. Ist der attr-Parameter nicht Null und das Objektmodell <literal>SINGLE</literal> (das Standardverhalten), so wird das Objekt beim Start jeder Transaktion der höchsten Ebene nicht reaktiviert."
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "Der Destruktor einer Programmierer-definierten Klasse muss das vererbte Operation \"terminate\" aufrufen, um den Status-Management Mechanismus darüber zu informieren, dass das Objekt im Begriff ist gelöscht zu werden, da andernfalls unvorhersehbare Ergebnisse auftreten können."
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"Da der <classname>StateManager</classname> an den <classname>LockManager</classname> vererbt,"
+"gibt er jede erhaltene "
+"<classname>ObjectName</classname>-Instanz an die <classname>StateManager</classname>-Klasse weiter. Anschließend kann das "
+"<classname>StateManager</classname>-Objektmodell wie zuvor beschrieben eingestellt werden."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,710 @@
+# translation of Chapter_03.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-28 23:01+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "Allgemeines Transaktionsprobleme"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Fortgeschrittene Transaktionsprobleme mit TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "Atomische Aktionen (Transaktionen) können sowohl von Anwendungsprogrammierern als auch Entwicklern von Klassen verwendet werden. Es können daher ganze Operationen (oder Teile von Operationen) atomisch gemacht werden, wie durch die Semantik einer bestimmten Operation erforderlich. Dieses Kapitel beschreibt einige der subtileren Probleme, die bei der Verwendung von Transaktionen im allgemeinen und <emphasis>TxCore</emphasis> im besonderen auftreten können."
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "Prüfen von Transaktionen"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"In einer Anwendung mit mehreren Threads können mehrere Threads während ihrer Lebensdauer mit einer Transaktion assoziiert werden, d.h. die Threads teilen sich den Kontext. Zusätzlich ist es möglich, dass - wenn ein Thread eine Transaktion beendet - andere Threads weiterhin aktiv innerhalb davon sind. In einer distribuierten Umgebung kann es schwierig sein zu garantieren, dass alle Threads mit einer Transaktion fertig sind, wenn diese beendet wird. Standardmäßig gibt <emphasis>TxCore</emphasis> eine Warnung heraus, wenn ein Thread eine Transaktion beendet wenn andere Threads darin noch aktiv sind - allerdings wird die Fortsetzung der Beendigung nichtsdestotrotz erlaubt. Es sind andere Lösungen für dieses Problem möglich, z.B. Sperren des die Transaktion beendenden Threads, bis alle anderen Threads sich vom Transaktionkontext disassoziiert haben. Daher liefert "
+"<emphasis>TxCore</emphasis> die <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname>-Klasse, die es gestattet, die Richtlinien für die Thread-/Transaktionsbeendigung außer Kraft zu setzen. Jede Transaktion hat eine Instanz dieser Klasse mit sich assoziiert und Anwendungsprogrammierer können ihre eigenen Implementierungen auf einer pro-Transaktionsbasis bereitstellen."
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Versucht ein Thread eine Transaktion zu beenden in der sich noch aktive Threads befinden, so ruft das System die Prüfmethode (\"Check Methode\") am <classname>CheckedAction</classname>-Objekt der Transaktion auf. Die Parameter der Prüfmethode lauten:"
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Gibt an, ob die Transaktion im Begriff ist festgeschrieben oder zurückgesetzt zu werden."
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "Der Transaktionsbezeichner."
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "eine Liste aller zum aktuellen Zeitpunkt als aktiv gekennzeichneten Threads innerhalb dieser Transaktion."
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "Wenn \"Check\" antwortet, so wird die Beendigung der Transaktion fortgesetzt. Selbstverständlich kann der Status der Transaktion zu diesem Zeitpunkt sich von dem zum Zeitpunkt des Aufrufs von \"Check\" unterscheiden, z.B. die Transaktion könnte mittlerweile festgeschrieben worden sein."
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "Statistiksammlung"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+"Standardmäßig bewahrt JBossTS keine Informationen zur Historie von Transaktionen. Wird jedoch die <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> Property-Variable auf YES gesetzt, so bewahrt der Transaktionsdienst Informationen zur Anzahl der erstellten Transaktionen und deren Ergebnissen auf. Diese Informationen können während der Ausführung einer transaktionalen Anwendung via der <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>-Klasse abgerufen werden:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Festschreibungsoptimierung der letzten Ressource"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+"In einigen Fällen kann es nötig sein, nicht in zwei-Phasen Festschreibung gewahre Teilnehmer in eine zwei-Phasen Festschreibungstransaktion einzutragen. Ist nur eine einzige Ressource vorhanden, so besteht keine Notwendigkeit für eine zwei-Phasen Festschreibung. Was aber, wenn mehrere Ressourcen in der Transaktion existieren? In diesem Fall kommt die \"Last "
+"Resource Commit\" Optimierung (LRCO) ins Spiel. Es ist möglich, dass eine einzelne Ressource, die ein-Phasen gewahr ist (d.h. kann nur festschreiben oder zurücksetzen, ohne \"prepare\"), in eine Transaktion mit zwei-Phasen Festschreibung gewahren Ressourcen eingetragen zu sein. Der Koordinator behandelt die ein-Phasen gewahre Ressource etwas anders, und zwar insofern als dass es die \"Prepare\"-Phase zuerst an allen anderen Ressourcen ausführt und - falls es die Transaktion dann festschreiben will - er die Kontrolle an die ein-Phasen gewahre Ressource gibt. Wird festgeschrieben, so protokolliert der Koordinator die Festschreibungsentscheidung und versucht die anderen Ressourcen ebenfalls festzuschreiben."
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+"Um das LRCO zu nutzen muss Ihr Teilnehmer das "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname>-Interface "
+"implementieren und durch <command>BasicAction</"
+"command>.add operation bei der Transaktion registriert sein; da diese Operation Instanzen von "
+"<classname>AbstractRecord</classname> erwartet, müssen Sie eine Instanz <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> erstellen und Ihren Teilnehmer als Konstruktorparameter angeben, wie unten gezeigt:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Verschachtelte Transaktionen"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr ""
+"Es gibt keine speziellen Konstrukte für das Verschachteln von Transaktionen: wird eine Aktion begonnen, während eine andere Action läuft, so wird sie automatisch verschachtelt. Dies erlaubt eine modulare Struktur für Anwendungen, wobei Objekte implementiert werden können, indem atomische Aktionen innerhalb ihrer Operationen verwendet werden, ohne dass der Anwendungsprogrammierer sich um die Anwendungen kümmern muss, die diese verwenden, d.h. ob die Anwendungen auch atomische Aktionen verwenden oder ob nicht. "
+"Daher sind Aktionen in manchen Anwendungen auf der obersten Ebene, in anderen hingegen verschachtelt. Auf diese Weise geschriebene Objekte können sogar von Anwendungsprogrammierern geteilt werden und <emphasis>TxCore</emphasis> garantiert Konsistenz."
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "Wird eine verschachtelte Aktion abgebrochen, so wird alle ihre Arbeit rückgängig gemacht, obwohl striktes zwei Phasen Sperren bedeutet, dass alle Sperren, die möglicherweise vorhanden sind, erhalten bleiben bis die Aktion der höchsten Ebene festgeschrieben oder abgebrochen wird. Wird eine verschachtelte Aktion festgeschrieben, so wird die von ihr durchgeführte Arbeit vom System nur festgeschrieben, wenn die Aktion auf höchster Ebene festschreibt; wird die Aktion auf höchster Ebene abgebrochen, so wird alle ihre Arbeit rückgängig gemacht."
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "Das Festschreiben oder Abbrechen einer verschachtelten Aktion hat nicht automatisch Einfluss auf das Ergebnis der Aktion innerhalb derer sie verschachtelt ist. Dies hängt von der Anwendung ab und gestattet es dem Programmierer atomische Aktionen zu strukturieren, so dass diese Fehler enthalten, Arbeit rückgängig machen usw."
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "Asynchrones Festschreiben einer Transaktion"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "Standardmäßig führt JBossTS das Festschreibungsprotokoll einer Transaktion der höchsten Ebene auf synchrone Weise aus, d.h. allen registrierten Ressourcen wird mitgeteilt sich in der Anordnung eines einzelnen Threads vorzubereiten und anschließend entweder festgeschrieben oder zurückgesetzt zu werden. Dies hat mehrere mögliche Nachteile:"
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "Im Falle vieler registrierter Ressourcen kann das \"Prepare Operating\" logisch parallel an jeder Ressource aufgerufen werden. Der Nachteil ist, dass eine \"frühe\" Ressource in der Liste registrierter Ressourcen ein Zurücksetzen während der Vorbereitung erzwingt, möglicherweise werden viele \"Prepare Operations\" unnötigerweise gemacht."
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "Im Falle wo heuristisches Reporting nicht durch die Anwendung benötigt wird, kann die zweite Phase des Festschreibungsprotokolls asynchron erfolgen, da Erfolg oder Fehlschlagen unwichtig sind."
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"Daher liefert <emphasis>JBossTS</emphasis> Runtime-Optionen zur Aktivierung möglicher Threading-Optimierungen. Durch Einstellung der <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal>-Umgebungsvariable auf "
+"<literal>YES</literal>, während der Vorbereitungsphase wird ein separater Thread für jeden registrierten Teilnehmer innerhalb der Transaktion erstellt. Durch Einstellung von "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> auf "
+"<literal>YES</literal>, wird ein separater Thread erstellt, um die zweite Phase der Transaktion zu vervollständigen, falls keine Kenntnisse über heuritische Ergebnisse notwendig sind."
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "Unabhängige Transaktionen auf höchster Ebene"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr "Zusätzlich zu normalen Top-Level und verschachtelten atomischen Aktionen unterstützt <emphasis>TxCore</emphasis> auch unabhängige Top-Level Aktionen, die dazu verwendet werden können strenge Serialisabilität auf kontrollierte Weise aufzulockern. Eine unabhängige Aktion der höchsten Ebene kann von überall aus innerhalb einer anderen atomischen Aktion ausgeführt werden und verhält sich genauso wie eine normale Aktion der höchsten Ebene, das heißt ihre Ergebnisse werden dauerhaft, wenn sie festgeschrieben wird und werden nicht rückgängig gemacht wenn jedwelche der Aktionen innerhalb derer sie ursprünglich verschachtelt wurde, abgebrochen werden."
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Unabhängige Aktion auf höchster Ebene"
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "zeigt eine typische Verschachtelung atomischer Aktionen, wo Aktion B innerhalb Aktion A verschachtelt ist. Obwohl atomische Aktion C logisch innerhalb von Aktion B verschachtelt ist (ihre \"Begin\"-Operation wurde aufgerufen während B aktiv war) wird sie innerhalb der Struktur unabhängig von den anderen Aktionen festgeschrieben oder abgebrochen, weil es sich um eine unabhängige Aktion der obersten Ebene handelt. Aufgrund des Wesens unabhängiger Aktionen der obersten Ebene, sollten diese mit Vorsicht gehandhabt werden und nur in Situationen verwendet werden, die zuvor eingehend geprüft wurden."
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "Top-Level Aktionen können innerhalb einer Anwendung verwendet werden, indem Instanzen der Klasse <classname>TopLevelTransaction</classname> deklariert und verwendet werden. Sie werden auf genau diesselbe Weise wie andere Transaktionen verwendet."
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "Transaktionen innerhalb von save_state und restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"Beim Schreiben der <command>save_state</command> und "
+"<command>restore_state</command>-Operationen sollte man Vorsicht walten lassen um sicherzustellen, dass keine atomischen Aktionen gestartet werden (entweder explizit in der Operation oder implizit durch Verwendung einer anderen Operation). Diese Einschränkung kommt aufgrund der Tatsache auf, dass <emphasis>TxCore</emphasis> <command>restore_state</command> als Teil seiner Festschreibungsbearbeitung aufrufen kann, was im Versuch resultiert eine atomische Aktion während der Festschreibungs- oder Abbruchphase einer anderen Aktion auszuführen. Dies könnte die Atomizität-Properties der Aktion verletzen, die gerade festgeschrieben (abgebrochen) wird und wird daher nicht empfohlen."
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "Wenn wir uns das zuvor gegebene Array-Beispiel ansehen, so würden die \"Set\" und \"Get\"-Operationen wie unten dargestellt implementiert."
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Es handelt sich hierbei um eine Vereinfachung des Code, wobei Fehlerbedingungen und Ausnahmen ignoriert werden."
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Müll sammelnde Objekte"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "Java Objekte werden gelöscht, wenn der Müllsammler bestimmt, dass sie nicht länger benötigt werden. Das Löschen eines zum aktuellen Zeitpunkt unter Kontrolle einer Transaktion stehenden Objekts muss mit Vorsicht angegangen werden, da das Schicksal eines innerhalb einer Transaktion bearbeiteten Objekts ultimativ von der Transaktion bestimmt wird. Daher wird, unabhängig von Verweisen auf ein transaktionales und durch die Anwendung gewartetes Objekt <emphasis>TxCore</emphasis> stets seine eigenen Verweise behalten um sicherzustellen, dass das Objekt nicht als Müll gesammelt wird ehe die Transaktion nicht beendet wurde."
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "Transaktions-Timeouts"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "Standardmäßig leben Transaktionen bis sie durch die Anwendung beendet werden, die sie erstellt hat oder bis ein Fehler auftritt. Es ist jedoch möglich, einen Timeout (in Sekunden) auf pro-Transaktionsbasis einzustellen, so dass - falls die Transaktion nicht endet ehe der Timeout abläuft - eine automatische Zurücksetzung erfolgt."
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+"In <emphasis>TxCore</emphasis> wird der Timeout-Wert als ein Parameter zum <classname>AtomicAction</classname>-Konstruktor geliefert. Wird ein "
+"<literal>AtomicAction.NO_TIMEOUT</literal>-Wert bereitgestellt (der Standard) dann erfolgt für die Transaktion kein automatischer Timeout. Jeder andere positive Wert wird als Timeout für die Transaktion (in Sekunden) angenommen. Ein Wert von Null"
+"wird als allgemeiner Standard-Timeout angenommen, der durch die Property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal> geliefert werden kann. Falls er nicht geändert wird, so beträgt der Standardwert 60 Sekunden."
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"Wird eine Transaktion der höchsten Ebene mit einem nicht-Null Timeout erstellt, so wird sie zurückgesetzt, wenn sie nicht innerhalb der festgelegten Sekundenzahl beendet wird. <emphasis>JBossTS</emphasis> verwendet einen separaten \"Reaper-Thread\", der alle lokal erstellten Transaktionen überwacht und deren Zurücksetzen erzwingt wenn deren Timeouts ablaufen. Um zu verhindern, dass dieser Thread Anwendungszeit verbraucht, läuft er nur periodisch. Die Standard-Prüfperiode sind 120000 Millisekunden, aber dies kann durch Einstellen der <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal>-Property-Variable auf einen anderen Wert in Mikrosekunden geändert werden. Alternativ, falls <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> auf "
+"<literal>DYNAMIC</literal> eingestellt ist, erwacht der \"Transaction-Reaper\" beim Timeout jeder Transaktion. Dies hat den Vorteil, das Transaktionen früher beendet werden, kann aber zur ständigen Neuterminierung des Reaper Threads führen."
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"Wird ein Wert von 0 als Timeout für eine Transaktion der höchsten Ebene festgelegt (oder kein Timeout festgelegt), dann macht <emphasis>JBossTS</emphasis> keinen Timeout bei der Transaktion geltend, d.h. sie kann unbeschränkt laufen. Dieser Standard-Timeout kann durch Einstellen der "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> Property-Variablen außer Kraft und zum benötigten Timeout-Wert in Sekunden gesetzt werden, wenn <emphasis>ArjunaCore</emphasis> oder <emphasis>ArjunaJTS</"
+"emphasis> oder <literal>com.arjuna.ats.jts.defaultTimeout</literal> verwendet wird, wenn "
+"<emphasis>ArjunaJTS</emphasis> benutzt wird."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,332 @@
+# translation of Chapter_04.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 06:18+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "Tipps und Tricks"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "Allgemeines"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Verwendung von Transaktionen in Konstruktoren"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Beispiele in diesem Handbuch haben Transaktionen in der Implementierung von Konstruktoren für neue persistente Objekte verwendet. Dies ist absichtlich der Fall, da es die ordnungsgemäße Fortpflanzung des Status des Objekts zum Objektspeicher gewährleistet. Erinnern wir uns daran, dass der Status eines bearbeiteten persistenten Objekts nur dann in den Objektspeicher geschrieben wird, wenn die Transaktion der höchsten Ebene festgeschrieben wird. Wenn also die Konstruktor-Transaktion diejenige der höchsten Ebene ist und festgeschrieben wird, dann wird das neu erstellte Objekt in den Speicher geschrieben und wird sofort verfügbar. Falls die Konstruktor-Transaktion festgeschrieben jedoch verschachtelt wird, weil eine andere vor der Objekterstellung begonnene andere Transaktion läuft, dann wird der Status nur geschrieben, wenn sämtliche übergeordneten Transaktionen festgeschrieben werden."
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "Wenn andererseits der Konstruktor Transaktionen nicht verwendet wenn dieses möglich is, dann kann es zu Inkonsistenzen im System kommen. Ist zum Beispiel keine Transaktion bei der Erstellung eines Objekts aktiv, dann wird deren Status nicht gespeichert, ehe das Objekt nicht unter der Kontrolle einer Transaktion das nächste Mal bearbeitet wird."
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "Nehmen wir dieses einfache Beispiel:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"Hier werden zwei Objekte außerhalb der Kontrolle der Aktion A der höchsten Ebene erstellt. <literal>obj1</literal> ist ein neues Objekt; <literal>obj2</literal> ist ein altes, bestehendes Objekt. Wenn die \"remember\"-Operation von <literal>obj2</"
+"literal> aufgerufen wird, wird das Objekt aktiviert und die Uid von "
+"<literal>obj1</literal> memorisiert. Da diese Aktion den persistenten Status von <literal>obj2</literal> festschreibt könnte nun die Uid von <literal>obj1</literal> enthalten sein. Der Status von <literal>obj1</literal> selbst wurde jedoch nicht gespeichert da er nicht unter Kontrolle irgendeiner Aktion verändert wurde. Genau genommen wird er nie gespeichert, wenn er nicht unter der Kontrolle einer Aktion im weiteren Verlauf der Anwendung bearbeitet wurde. Falls aber der Konstruktor eine atomische Aktion am Status von <literal>obj1</literal> verwendet hat, so würde dies automatisch zum Zeitpunkt der Konstruktion gespeichert und diese Inkonsistenz würde nicht auftreten."
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "Mehr zu save_state und restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr "<emphasis>TxCore</emphasis> kann die benutzerdefinierte <command>save_state</command>-Operation eines Objekts effektiv zu jedem Zeitpunkt aufrufen, einschließlich während der Ausführung des Körpers des Objekt-Konstruktors (insbesondere wenn atomische Aktionen verwendet werden). Es ist daher wichtig, dass sämtlich durch save_state gespeicherte Variablen korrekt initialisiert werden."
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"Beim Schreiben der <command>save_state</command> und <command>restore_state</command>-Operationen sollte man ebenfalls Vorsicht walten lassen um sicherzustellen, dass keine Transaktionen gestartet wurden (entweder explizit in der Operation oder implizit durch Verwendung einer anderen Operation). Diese Einschränkung ist Folge der Tatsache, dass <emphasis>TxCore</emphasis> beim Versuch eine atomische Transaktion während der Festschreibungs- oder Abbruchphase einer anderen Transaktion festzuschreiben als Teil seiner Festschreibungsbearbeitung <command>restore_state</"
+"command> aufrufen kann. Dies könnte die Atomaritäts-Properties der festzuschreibenden (abgebrochenen) Transaktion verletzen und wird daher nicht empfohlen."
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"Um Crash Recovery für persistente Objekte zu unterstützen ist es nötig, dass alle <literal>save_state</literal> und <literal>restore_state</literal> "
+"Methoden von Benutzerobjekten <command>super.save_state</command> und "
+"<command>super.restore_state</command> aufrufen."
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Verpacken von Objekten"
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"Alle grundlegenden Typen von Java (int, long, etc.) können aus einer <classname>Input/OutputObjectState</classname>-Instanz gespeichert und wiederhergestellt werden indem die Verpack- (und Auspack-) Hilfsprogramme, die durch <classname>Input/OutputObjectState</"
+"classname> bereitgestellt werden, verwendet werden. Jedoch sollte das Verpacken und Auspacken von Objekten unterschiedlich gehandhabt werden. Der Grund hierfür ist die Tatsache, dass das Verpacken von Objekten das zusätzliche Problem des Aliasing aufbringt. Das heißt, zwei verschiedene Objektreferenzen können auf denselben Posten verweisen. Zum Beispiel:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "Hier verweisen sowohl s1 als auch s2 auf denselben String und eine naive Implementierung von <command>save_state</command> könnte dazu führen, dass der String einfach zwei Mal kopiert wird. Aus einer <command>save_state</command>-Perspektive ist dies schlichtweg ineffizient. Jedoch macht es <command>restore_state</command> schlichtweg inkorrekt, da es die beiden Strings in unterschiedliche Speicherbereiche entpacken und die ursprünglichen Aliasing-Informationen zerstören würde. Die aktuelle Version von TxCore packt und entpackt separate Objektreferenzen."
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "Direkte Verwendung von StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+"Alle Beispiele in diesem Handbuch leiten Benutzerklassen aus dem "
+"<classname>LockManager</classname> ab. Dafür gibt es zwei Gründe."
+"Zunächst einmal erfordern die Serialisierbarkeitseinschränkungen atomischer Aktionen es und zweitens senkt es die Notwendigkeit von Eingriffen durch den Programmierer. Falls aber nur Zugriff auf <emphasis>TxCore</emphasis>s Persistenz- und Wiederherstellungsmechanismen benötigt werden, ist die direkte Ableitung einer Benutzerklasse vom <classname>StateManager</classname> möglich."
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr "Direkt vom <classname>StateManager</classname> abgeleitete Klassen müssen explizit dessen Statusmanagement-Mechanismen verwenden (diese Interaktionen werden normalerweise durch den <classname>LockManager</classname> vorgenommen). Aus Sicht des Programmierers führt dies zur korrekten Verwendung der Operationen \"activate\", \"deactivate\" und \"modified\", da die Konstruktoren des <classname>StateManager</classname>s Konstruktors effektiv identisch mit dem <classname>LockManager</classname> sind."
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr "<command>Activate</command> lädt ein Objekt aus dem Objektspeicher. Die UID des Objekts muss bereits via Konstruktor eingestellt sein und das Objekt muss im Speicher vorhanden sein. Wird das Objekt erfolgreich gelesen, so wird <command>restore_state</command> aufgerufen, um das Objekt im Speicher zu bauen. <command>Activate</command> ist id-unwirksam, so dass nach Aktivierung eines Objekts weitere Aufrufe ignoriert werden. Der Parameter repräsentiert den Root-Namen des Objektspeichers für die Suche nach dem Objekt. Ein Wert von Null bedeutet Verwendung des Standardspeichers."
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 ""
+"Die Umkehrung von \"activate\". Erst Aufruf von <command>save_state</command> zum Bau des"
+"komprimierten Objekt-Image, dass dann im Objektspeicher gespeichert wird. Objekte können nur gespeichert werden, wenn sie seit ihrer Aktivierung verändert wurden. Der Parameter repräsentiert den Root-Namen des Objektspeichers, in welchem das Objekt gespeichert werden sollte. Ein Wert von Null bedeutet Verwendung des Standardspeichers."
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 ""
+"<emphasis>Muss</emphasis> vor der Bearbeitung des Objekts im Speicher aufgerufen werden. "
+"Falls dies nicht erfolgt, so wird das Objekt nicht im Objektspeicher durch \"deactivate\" gespeichert."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,969 @@
+# translation of Chapter_05.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 06:42+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "Tools"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "Dieses Kapitel erklärt, wie das Tools Framework gestartet und verwendet wird und welche Tools verfügbar sind."
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "Starten der \"Transaction Service Tools\""
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "Wie die Transaction Service Tools gestartet werden unterscheidet sich je nach verwendetem Betriebssystem:"
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr ""
+"Doppelklicken Sie auf das ‘Start Tools’-Link in der JBoss Transaction Service "
+"Programmgruppe im Start-Menü."
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Starten Sie eine Bash-Shell und tippen Sie:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+"Nachdem Sie dies getan haben, erscheint der Tools-Bildschirm. Dies ist der Launch-Bereich für alle mit <emphasis>JBoss Transaction "
+"Service</emphasis> gelieferten Tools. Ganz oben im Bildschirm sehen Sie einen Menü-Balken. Dieser besitzt vier Elemente:"
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>File</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "JMX-Browser öffnen"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr "Dies zeigt das JMX-Browser-Fenster an (siehe ***Verwendung des JMX-Browsers für weitere Informationen zur Verwendung des JMX-Browsers)."
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Objektspeicher-Browser öffnen"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 "Dies zeigt das JBossTS Object Store Browser-Fenster an (siehe ***Verwendung des Objektspeicher-Browsers für weitere Informationen zur Verwendung des Objektspeicher-Browsers)."
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Einstellungen"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "Diese Option öffnet den Einstellungsdialog, mit dem Sie die verschiedenen verfügbaren Tools konfigurieren können."
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr "Exit"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "Dies schließt den Tools-Bildschirm und beendet die Anwendung, wobei ungespeicherte/unbestätigte Änderungen verloren gehen."
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>Performance</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Open"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+"Dies öffnet einen Performance-Bildschirm – siehe <xref linkend=\"Performance_Tool\"/> "
+"für weitere Informationen zum Performance-Tool."
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr "Close All"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"dies schließt alle aktuell offenen Performance-Bildschirme – siehe <xref "
+"linkend=\"Performance_Tool\"/> für weitere Informationen zum Performance-Tool."
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>Window</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Cascade Windows"
+
+#. 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 "Dies ordnet die Bildschirme in einer diagonalen Linie an, damit Sie einen bestimmten Bildschirm finden können."
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Für jeden aktuell sichtbaren Bildschirm ist hier eine extra Menüoption verfügbar. Die Auswahl dieser Menüoption bringt den assoziierten Bildschirm vorne auf das Desktop."
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "Das <menuchoice><guimenu>Help</guimenu></menuchoice> Menü"
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Dies zeigt den \"About\"-Bildschirm mit Produktinformationen an."
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Verwendung des Performance-Tools"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+"Das Performance-Tool kann zur Darstellung von Performance-Informationen des Transaktionsdienstes verwendet werden. Diese Informationen werden mittels des Performance "
+"JMX-Bean gesammelt, was bedeutet, dass der Transaktionsdienst in einen Applikationsserver integriert werden muss um Performance-Informationen zu liefern."
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"Die Performance-Informationen werden über ein Multi-Serien Diagramm angezeigt. Um dieses Diagramm anzusehen, öffnen Sie einfach einen Performance-Bildschirm indem Sie "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice> wählen"
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "Der jetzt erscheinende Bildschirm enthält ein Multi-Serien-Diagramm, das die folgenden Informationen anzeigen kann:"
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr "Anzahl von Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Anzahl von festgeschriebenen Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Anzahl von abgebrochenen Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Anzahl von verschachtelten Transaktionen."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Anzahl aufgebrachter \"Heuristics\"."
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "Um diese Serie an- und auszuschalten, wählen Sie einfach die entsprechende Menü-Option aus dem Serien-Menü."
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 "Wenn Serien angeschaltet werden, so erscheinen diese in der Legende unten im Diagramm. Die Farbe neben dem Namen der Serie (zum Beispiel für erstellte Transaktionen \"Transactions Created\") ist die Farbe der diese Daten repräsentierenden Daten."
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "Die im Diagramm dargestellten Daten stehen im Verhältnis zur Zeit. Die Y-Achse repräsentiert die Anzahl von Transaktionen, die X-Achse repräsentiert Zeit."
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+"Das Sampling von Daten kann mittels <menuchoice><guimenu>Sampling</guimenu></menuchoice>-Menü zu jedem Zeitpunkt angehalten und erneut gestartet werden, und die aktuell sichtbaren Daten können als durch Kommas getrennte Werte - sog. \"Comma Separate Values\" (CSV) - in einer Datei für den Import der Daten in eine Tabellenanwendung gespeichert werden, indem die "
+"<menuchoice><guimenu>Save to .csv</guimenu></menuchoice>-Menüoption aus dem <menuchoice><guimenu>Data</guimenu></menuchoice>-Menü verwendet wird."
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Verwendung des JMX-Browsers"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"Um das JMX-Browser-Fenster zu öffnen, klicken Sie auf das <menuchoice><guimenu>File</guimenu></menuchoice>-Menü und anschließend auf die <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>-Option. Das JMX-Browser-Fenster wird dann angezeigt."
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+"Der Bildschirm besteht aus zwei Hauptabschnitten: Dem \"Details\"-Panel und dem MBean-Panel. Das MBean-Panel zeigt die durch den MBean-Server offengelegten MBeans an. "
+"Diese werden nach Domain-Namen gruppiert. Das Details-Panel zeigt Informationen zum aktuell gewählten MBean an. Um ein MBean auszuwählen, machen Sie einfach einen Linksklick mit der Maus und es wird markiert. Die im Details-Panel angezeigten Informationen lauten wie folgt:"
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "Die Gesamtzahl von auf diesem Server registrierten MBeans."
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Konstruktoren."
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Attribute."
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Operationen."
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "Die Anzahl der durch dieses MBean offengelegten Benachrichtigungen."
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "Eine kurze Beschreibung des MBean."
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+"Es existiert außerdem ein <menuchoice><guimenu>View</guimenu></menuchoice>-Link, das beim Klicken darauf die durch dieses MBean offengelegten Attribute und Operationen anzeigt. "
+"Von hier aus können Sie lesbare Attribute ansehen, schreibbare Attribute verändern und Operationen aufrufen."
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "Verwendung von Attributen und Operationen"
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+"Wird das <menuchoice><guimenu>View</guimenu></menuchoice>-Link geklickt, so wird der \"View JMX Attributes and Operations\"-Bildschirm zur Ansicht von JMX Attributen und Operationen angezeigt. Von hier aus können Sie auch alle lesbaren Attribute ansehen, die durch das gewählte MBean offengelegt werden. Sie können auch schreibbare Attribute bearbeiten. Ist ein Attribut schreibgeschützt, so werden Sie allerdings den Attributwert nicht bearbeiten können. Um einen Attributwert zu verändern, doppelklicken Sie einfach auf den aktuellen Wert und geben Sie den neuen Wert ein. Falls die "
+"<guibutton>...</guibutton>-Schaltfläche aktiviert ist, so können Sie darauf klicken um eine passendere Bearbeitungsmethode einzusehen. Handelt es sich beim Attribut-typ um einen JMX-Objektnamen, so führt das Klicken dieser Schaltfläche zur Anzeige der JMX-Attribute und Operationen für dieses Objekt."
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "Sie können zu jedem Zeitpunkt die <guibutton>Refresh</guibutton>-Schaltfläche klicken, um die Attributwerte neu zu laden. Wird eine Ausnahme während des Abrufs eines Attributswerts gemeldet, so wird diese statt des Attributwerts angezeigt."
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+"Sie können auch Operationen an einem MBean aufrufen. Eine Liste von durch ein MBean offengelegten Operationen wird unter der Attributliste angezeigt. Um eine Operation aufzurufen, wählen Sie einfach"
+"aus der Liste und klicken Sie die <guibutton>Invoke</guibutton>-Schaltfläche. Falls die Operation Parameter erfordert, so öffnet sich ein weiteres Fenster, von dem aus Sie Werte für jeden der erforderlichen Parameter festlegen müssen. Parameterwerte werden auf diesselbe Weise festgelegt wie auch JMX-Attributwerte. Nachdem Sie einen Wert für jeden Parameter festgelegt haben, klicken Sie auf die <guibutton>Invoke</guibutton>-Schaltfläche, um den Aufruf durchzuführen."
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Ist der Methodenaufruf beendet, so wird dessen Wiedergabewert angezeigt."
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "Verwendung des Objektspeicher-Browsers"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+"Um das Objektspeicher-Browser-Fenster zu öffnen, klicken Sie auf das "
+"<menuchoice><guimenu>File</guimenu></menuchoice>-Menü und anschließend auf die "
+"<menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice>-Option. Das Objektspeicher-Browser-Fenster wird dann angezeigt."
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "Das Browser-Fenster des Objektspeichers ist in vier Abschnitte aufgeteilt:"
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+"\"Object Store Roots\" - dies ist ein Pull-Down der aktuell verfügbaren Object "
+"Store Roots. Die Auswahl einer Option aus der Liste füllt die Hierarchie-Ansicht mit den Inhalten des ausgewählten Root wieder auf."
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "\"Object Store\" Hierarchie – dies ist ein Baum, der die aktuelle Objektspeicher Hierarchie zeigt. Die Auswahl eines Node aus diesem Baum zeigt die an diesem Speicherort gespeicherten Objekte an."
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objects – dies ist eine Liste von Symbolen, die die im ausgewählten Speicherort gespeicherten Objekte repräsentiert."
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 ""
+"Object Details – dies zeigt Informationen zum aktuell gewählten Objekt "
+"(nur falls der Objekttyp dem Repository zur Statusansicht bekannt ist, Informationen zum Schreiben von sog. \"Object State Viewers\" finden Sie in \"Writing an OSV\")."
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "Object State Viewers (OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+"Wird ein Objekt im Objekt-Panel des Hauptbildschirms ausgewählt, so wird der registrierte Object State Viewer (oder OSV) für diesen Objekttyp aufgerufen. Die Aufgabe einer OSV ist es, dem Benutzer Informationen via des Benutzer-Interface verfügbar zu machen und Informationen zum gewählten Objekt anzuzeigen. Mit den Standard-Tools wird eine OSV für atomische Aktionen (Atomic Actions) distribuiert, und die OSV zeigt Informationen zu den abstrakten Datensätzen (Abstract Records) in ihren verschiedenen Listen (z.B. heuristic, failed, read-"
+"only, usw) an. Es ist auch möglich, eigene OSVs zu schreiben, die zur Anzeige von Informationen von definierten Objekttypen verwendet werden. Dieses Thema behandeln wir als nächstes."
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "Schreiben eines OSV"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "Das Schreiben eines OSV-Plugins gestattet es Ihnen, die Möglichkeiten des Object Store Browsers zu erweitern, um den Status benutzerdefinierter abstrakter Datensätze anzuzeigen. Ein OSV-Plugin ist einfach eine Klasse, die das Interface implementiert:"
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "Es muss in einer JAR innerhalb des Plugins-Verzeichnisses gepackt werden. Dieses Beispiel zeigt, wie ein OSV-Plugin für eine abstrakte Datensatz-Unterklasse erstellt wird, die wie folgt aussieht:"
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr "Wird der abstrakte Datensatz im Object Store Browser angesehen, ist es schön, wenn der aktuelle Wert erscheint. Dies lässt sich leicht einrichten, da wir den Status in eine Instanz unseres abstrakten Datensatzes lesen und <methodname>getValue()</methodname> aufrufen können. Nachfolgend sehen Sie den Quellcode eines Object Store Browsers:"
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+"Die <methodname>uidNodeExpanded</methodname>-Methode wird aufgerufen, wenn eine den gegebenen Typ repräsentierende UID "
+"(Unique Identification) im Object Store Hierarchie-Baum erweitert wird. Dies ist aus Sicht dieses Plugin nicht erforderlich, da dieser abstrakte Datensatz nicht direkt im Objektspeicher sichtbar ist, sondern nur via einer der Listen in einer atomischen Aktion einsehbar ist. Die Methode "
+"<methodname>entrySelected</methodname> wird aufgerufen, wenn ein Eintrag aus der Objektansicht ausgewählt wird, der ein Objekt des vorgegebenen Typs repräsentiert. In beiden Methoden wird das StatePanel zur Anzeige von Informationen zum Objektstatus verwendet. Das Status-Panel besitzt folgende Methoden, die bei der Anzeige dieser Informationen helfen:"
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>: Diese Methode kann zur Anzeige allgemeiner Informationen verwendet werden."
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 "<methodname>setData(String name, String value)</methodname>: Diese Methode wird dazu verwendet Informationen in die Tabelle zu platzieren, die durch das Object Store Browser Tool dargestellt wird."
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: Diese Methode wird zur Aktivierung der Details-Schaltfläche verwendet. Das Listener-Interface gestattet es, dass ein Plugin informiert wird, wenn diese Schaltfläche gedrückt wird. Es hängt vom Plugin-Entwickler ab zu entscheiden, wie diese Informationen weiter angezeigt werden."
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 "In diesem Beispiel lesen wird den Status aus dem Objektspeicher und verwenden den von getValue() wiedergegebenen Wert zur Eingabe in eine Status-Panel-Tabelle. Die getType()-Methode gibt den Typ wieder, gegen den dieses Plugin registriert werden soll."
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"Um dieses Plug-in zum Object Store Browser hinzuzufügen ist es notwendig, es in eine JAR-Datei (Java Archive) zu packen deren Namen ein 'osbv-' vorangestellt ist. "
+"Die JAR-Datei muss bestimmte Informationen innerhalb der Manifestdatei enthalten, damit der Object Store Browser weiß, bei welchen Klassen es sich um Plug-ins handelt. All dies kann mittels eines <ulink url=\"http://ant.apache.org\">Apache ANT</ulink>-Skripts wie folgt durchgeführt werden:"
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"Nachdem eine JAR mit den korrekten Informationen in der Manifest-Datei erstellt wurde, muss sie nur noch im <emphasis>bin/tools/plugins</"
+"emphasis>-Verzeichnis untergebracht werden."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,878 @@
+# translation of Chapter_06.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 06:44+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "Konstruktion von transaktionalen Objekten für Java-Anwendungen"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "Anwendungskonstruktion"
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Es gibt zwei unterschiedliche Phasen bei der Entwicklung einer TxCore-Anwendung:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Entwicklung neuer Klassen mit bestimmten Charakteristika (z.B. persistent, wiederherstellbar d.h. \"recoverable\", nebenläufigkeitskontrolliert d.h. \"Concurrency Controlled\")."
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Entwicklung der Anwendung(en), die die neue Objektklasse verwenden."
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+"Obwohl diese beiden Phasen parallel und von einer einzelnen Person durchgeführt werden können, nennen wir den ersten Schritt den Job des Klassenentwicklers und den zweiten den Job des Anwendungsentwicklers. Der Klassenentwickler kümmert sich um die Definition der passenden <code>save_state</code> und <code>restore_state</code>-Operationen für die Klasse, setzt passende Sperren in Operationen und ruft die passenden TxCore-Klassenkonstruktoren."
+"Der Anwendungsentwickler wird sich eher um die Definition der allgemeinen Struktur der Applikation kümmern, insbesondere im Hinblick auf die Verwendung von atomischen Aktionen."
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 ""
+"Dieses Kapitel illustriert die in vorangegangenen Abschnitten gemachten Punkte anhand einer einfachen Anwendung: In diesem Falle wird eine einfache FIFO Warteschleifen-Klasse für ganzzahlige Werte entwickelt. Die Implementierung der Warteschleife wird eine doppelt verlinkte Listenstruktur haben und wird als einzelnes Objekt implementiert. "
+"Wir werden dieses Beispiel für den Rest dieses Handbuchs verwenden, um die verschiedenen durch TxCore bereitgestellten Mechanismen zu illustrieren. Zwar ist dies eine unrealistische Beispielanwendung, ermöglicht es jedoch sämtliche TxCore-Modifikationen zu beschreiben, ohne dass tiefer gehende Kenntnisse vom Anwendungscode nötig wären."
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "Im Rest dieses Kapitels gehen wir davon aus, dass die Anwendung nicht distribuiert wird. Ist dies nicht der Fall, so muss Kontextinformation entweder implizit oder explizit fortgepflanzt werden."
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "Warteschleifen-Beschreibung (Queue Description)"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "Bei der Warteschleife handelt es sich um eine traditionelle FIFO-Warteschleife wo Elemente vorne hinzugefügt und hinten entfernt werden. Die durch die Warteschleifenklasse gelieferten Operationen gestatten es Werten in die Warteschleife platziert zu werden (\"enqueue\") und daraus entfernt zu werden (\"dequeue\"), und es ist auch möglich die Werte von Elementen in der Warteschleife zu verändern oder zu überprüfen. In dieser Beispielimplementierung wird ein Array zur Repräsentation einer Warteschleife verwendet. Eine Beschränkung auf <code>QUEUE_SIZE</code>-Elemente gilt für dieses Beispiel."
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "Die Java Interface-Definition dieser einfachen Warteschleifenklasse ist unten angegeben:"
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Konstruktoren und Dekonstruktoren"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "Wie im vorherigen Abschnitt dargestellt, muss zur Verwendung eines bestehenden persistenten Objekts ein spezieller Konstruktor verwendet werden, der die Uid des persistenten Objekts annimt; die Implementierung eines solchen Konstruktors ist unten angegeben:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "Der ein neues persistentes Objekt erstellende Konstruktor ist ähnlich:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+"Die Verwendung einer atomischen Aktion innerhalb des Konstruktors für ein neues Objekt folgt den zuvor beschriebenen Richtlinien und stellt sicher, dass der Status des Objekts in den Objektspeicher geschrieben wird, wenn die entsprechende atomische Aktion auf höchster Ebene festgeschrieben wird (welches entweder Aktion A oder eine einschließende Aktion wenn die <code>TransactionalQueue</code> konstruiert wurde). Die Verwendung atomischer Aktionen in einem Konstruktor ist einfach: Eine Aktion muss zuerst deklariert und ihre "
+"\"begin\"-Operation aufgerufen sein; die Operation muss dann eine entsprechende Sperre für das Objekt einstellen (in diesem Fall ist eine <code>WRITE</code>-Sperre erforderlich), dann wird der Hauptkörper des Konstruktors ausgeführt. Ist dies erfolgreich, so kann die atomische Aktion festgeschrieben werden, andernfalls wird sie abgebrochen."
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "Der Destruktor der Warteschleifen-Klasse muss lediglich die \"terminate\"-Operation von <methodname>LockManager</methodname> aufrufen."
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state und type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "Die Implementierungen von save_state und restore_state sind relativ einfach für dieses Beispiel:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"Da die Warteschleifen-Klasse ist von der <classname>LockManager</"
+"classname>-Klasse abgeleitet ist, sollte der Operationstyp sein:"
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "\"Enqueue\"/\"Dequeue\"-Operationen (einreihen und aus der Warteschlange entfernen)"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "Sollen Operationen der Warteschlange-Klasse als atomische Aktionen codiert werden, dann könnte die Einreihungsoperation (\"enqueue\") die unten angegebene Struktur besitzen (die Operation zum Entfernen aus der Warteschlange - \"dequeue\" - wäre ähnlich strukturiert):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "Die Implementierung von <methodname>queueSize</methodname> ist unten dargestellt:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "inspectValue/setValue Operationen"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+"Die Implementierung von <methodname>inspectValue</methodname> ist unten dargestellt. "
+"<methodname>setValue</methodname> ist ähnlich, nicht dargestellt."
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Der Client"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "Statt den gesamten Code für den Client zu zeigen, wollen wir uns auf einen repräsentativen Teil konzentrieren. Vor dem Aufruf von Operationen am Objekt muss der Client zunächst daran anbinden. Im lokalen Fall erfordert dies lediglich, dass der Client eine Instanz des Objekts erstellt."
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr "Vor dem Aufrufen einer der Operationen der Warteschleife, startet der Client eine Transaktion. Die <methodname>queueSize</methodname>-Operation ist unten angezeigt:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Anmerkungen"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "Da das Warteschlangen-Objekt persistent ist, überlebt der Status des Objekts alle Fehlfunktionen des Nodes auf dem es sich befindet. Der Status des Objekts das überlebt, wird von der letzten festgeschriebenen atomischen Aktion produziert, die an dem Objekt durchgeführt wird. Ist es zum Beispiel Absicht einer Anwendung zwei Einreihungsoperationen atomisch durchzuführen, so kann dies erfolgen, indem die Einreihungsoperationen in einer anderen, umschließenden atomischen Aktion verschachtelt werden. Zusätzlich werden nebenläufige Operationen an einem solchen persistenten Objekt serialisiert, wodurch Inkonsistenzen beim Status des Objekts verhindert werden. Da jedoch die Elemente der Warteschlange-Objekte nicht individuell auf Nebenläufigkeit kontrolliert werden, werden bestimmte Kombinationen von Aufrufen nebenläufiger Operationen seriell ausgeführt, während sie der Logik nach nebenläufig ausgeführt werden sollten. Zum Beispiel bei der Bearbeitung der Stati!
  von zwei verschiedenen Elementen der Warteschlange. Im nächsten Abschnitt gehen wir auf einige dieser Themen ein."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+# translation of Chapter_07.po to
+# Language de-DE translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Jasna Dimanoski <jdimanos at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-29 07:01+1000\n"
+"Last-Translator: Jasna Dimanoski <jdimanos at redhat.com>\n"
+"Language-Team:  <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "Konfigurationsoptionen"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Optionen"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "Die folgende Tabelle zeigt die Konfigurations-Features, mit den Standardwerten in kursivem Schriftbild. Weitere Einzelheiten zu jeder Option finden Sie in den relevanten Abschnitten dieses Dokuments."
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "TxCore-Konfigurationsoptionen."
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Konfigurationsname"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Mögliche Werte"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Beschreibung"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "Schaltet die Synchronisation des Objektspeichers an oder aus. Mit Vorsicht zu verwenden."
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "Legt den Typ von zu verwendender Objektspeicher-Implementierung fest."
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/jeder ganzzahlige Wert"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Einstellen der Verzeichniszahl zum Hashen der Objektstati für die HashedStore-Objektspeicher-Implementierung."
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Festlegen der zu verwendenden Sperrspeicher-Implementierung."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Legt den Speicherort des Sperrspeichers fest."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "Jeder Speicherort in den die Anwendung schreiben kann."
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "Festlegen des Speicherorts des Objektspeichers."
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "Festlegen des Namen des Objektspeicher-Root."
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "Die zu verwendende Implementierung von Transaktionsprotokoll."
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "Schaltet asynchrone Festschreibung an oder aus (Standard)."
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "Schaltet asynchrones \"Prepare\" an oder aus (Standard)."
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "JDBCAccess-Klassenname"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "Die zu verwendende JDBCAccess-Implementierung für Objektspeicher auf Benutzerebene."
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "Die zu verwendende JDBCAccess-Implementierung für Transaktions-Objektspeicher."
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "Aktivieren oder Deaktivieren der ein-Phasen Festschreibungsoptimierung."
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "Aktivieren oder Deaktivieren der schreibgeschützten (read-only) Optimierung für den Abbruch der zweiten Phase."
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "Starten/stoppen des Sammelns von statistischen Informationen zur Transaktion."
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+"Mit aktiviertem oder deaktiviertem Transaktionssystem starten oder stoppen. Hin- und herschalten via der com."
+"arjuna.ats.arjuna.coordinator.TxControl-Klasse."
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Integer"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Timeout in Millisekunden"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/de-DE/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_A.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_A.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_A.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,269 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix>
+    <title>Object store implementations</title>
+    
+    <section>
+        <title>The ObjectStore</title>
+		<para>
+			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.
+		</para>
+		<para>
+			This release of JBossTS contains several different implementations of a basic object store. Each serves a particular purpose and is generally optimised for that purpose. All of the implementations are derived from the <interface>ObjectStore</interface> interface. This defines the minimum operations which must be provided in order for an object store implementation to be used by JBossTS. The default object store implementation can be overridden at runtime by setting the <property>com.arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable to one of the types described below.
+		</para>
+<screen>
+	/*
+	* This is the base class from which all object store types are derived.
+	* Note that because object store instances are stateless, to improve
+	* efficiency we try to only create one instance of each type per process.
+	* Therefore, the create and destroy methods are used instead of new
+	* and delete. If an object store is accessed via create it *must* be
+	* deleted using destroy. Of course it is still possible to make use of
+	* new and delete directly and to create instances on the stack.
+	*/
+	
+	public class ObjectStore
+	{
+	public static final int OS_COMMITTED;
+	public static final int OS_COMMITTED_HIDDEN;
+	public static final int OS_HIDDEN;
+	public static final int OS_INVISIBLE;
+	public static final int OS_ORIGINAL;
+	public static final int OS_SHADOW;
+	public static final int OS_UNCOMMITTED;
+	public static final int OS_UNCOMMITTED_HIDDEN;
+	public static final int OS_UNKNOWN;
+	public ObjectStore (ClassName type);
+	public ObjectStore (ClassName type, String osRoot);
+	public ObjectStore (String osRoot);
+	public synchronized boolean allObjUids (String s, InputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized boolean allObjUids (String s, InputObjectState buff,
+	int m) throws ObjectStoreException;
+	
+	public synchronized boolean allTypes (InputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized int currentState(Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean commit_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean hide_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean reveal_state (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized InputObjectState read_committed (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized InputObjectState read_uncommitted (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean remove_committed (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean remove_uncommitted (Uid u, String tn)
+	throws ObjectStoreException;
+	public synchronized boolean write_committed (Uid u, String tn,
+	OutputObjectState buff)
+	throws ObjectStoreException;
+	public synchronized boolean write_uncommitted (Uid u, String tn,
+	OutputObjectState buff)
+	throws ObjectStoreException;
+	public static void printState (PrintStream strm, int res);
+};			
+</screen>
+		<para>
+			JBossTS programmers need not usually interact with any of the object store implementations directly other than possibly to create them in the first place (even this is not necessary if the default store type is used as JBossTS will create stores as necessary). All stores manipulate instances of the class <classname>ObjectState</classname> which are named using a type (via the object's type() operation) and a Uid. For atomic actions purposes object states in the store can be principally in two distinct states: OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED state but when modified under the control of an atomic action a new second object state may be written that is in the OS_UNCOMMITTED state. If the action commits this second object state replaces the original and becomes OS_COMMITTED. If the action aborts, this second object state is simply discarded. All of the implementations provided with this release handle these state transitions by ma!
 king use of shadow copies of object states, 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.
+		</para>
+		<para>
+			Browsing of the contents of a store is possible through the <methodname>allTypes</methodname> and <methodname>allObjUids</methodname> operations. <methodname>allTypes</methodname> returns an <type>InputObjectState</type> containing all of the type names of all objects in a store, terminated by a null name. <methodname>allObjUids</methodname> returns an <type>InputObjectState</type> that contains all of the Uids of all objects of a given type terminated by the special <methodname>Uid.nullUid()</methodname>.
+		</para>
+    </section>
+    <section id="Persistent_object_stores">
+	    <title>Persistent object stores</title>
+	    	<para>
+			This section briefly describes the characteristics and optimisations of each 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.
+		</para>
+		<formalpara>
+			<title>Common functionality</title>
+			<para>In addition to the features mentioned earlier all of the supplied persistent object stores obey the following rules:</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Each object state is stored in its own file that is named using the <code>Uid</code> of the object.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The type of an object (as given by the <methodname>type()</methodname> operation) determines the directory into which the object is placed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					All stores also have the notion of a localised root directory that is 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>.
+				</para>
+			</listitem>
+		</itemizedlist>
+<screen>
+&lt;ObjectStore root Directory from configure&gt;	/JBossTS/ObjectStore/
+	&lt;ObjectStore Type1&gt;			FragmentedStore/
+		&lt;Default root&gt;			defaultStore/
+			&lt;StateManager&gt;			StateManager
+				&lt;LockManager&gt;			LockManager/
+					&lt;User Types&gt;		
+	&lt;Localised root 2&gt;		myStore/
+		&lt;StateManager&gt;			StateManager/
+									
+	&lt;ObjectStore Type2&gt;		ActionStore/
+		&lt;Default root&gt;			defaultStore/	
+</screen>
+    
+		<formalpara>
+			<title>The shadowing store</title>
+			<para>
+				This is the original version of the object store as provided in prior releases and is implemented by the class <classname>ShadowingStore</classname>. It is simple but slow. It uses pairs of files to represent objects (the shadow version and the committed version) and files are opened, locked, operated upon, unlocked and closed on every interaction with the object store. Thus significant portions of time can be spent in the system simply opening, closing and renaming files, all of which are very expensive operations.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowingStore</type>.
+		</para>
+		<formalpara>
+			<title>No file-level locking</title>
+			<para>
+				Since transactional objects are concurrency controlled through <methodname>LockManager</methodname>, it is not necessary to impose additional locking at the file level, as the basic ShadowingStore implementation does. Therefore, the default object store implementation for JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-level locking. This enables it to provide better performance than the <methodname>ShadowingStore</methodname> implementation.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowNoFileLockStore</type>.
+		</para>
+		<formalpara>
+			<title>The hashed store</title>
+				<para>
+					The <code>HashedStore</code> has the same structure for object states as the shadowing stores but has an alternate directory structure that is better suited to storing large numbers of objects of the same type. Using this store objects are scattered amongst a set of directories by applying a 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.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>HashedStore</type>.
+		</para>
+		<formalpara>
+			<title>No file-level locking</title>
+				<para>
+					Since transactional objects are concurrency controlled through <methodname>LockManager</methodname>, it is not necessary to impose additional locking at the file level, as the basic <methodname>ShadowingStore</methodname> implementation does. Therefore, the default object store implementation for JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-level locking. This enables it to provide better performance than the <methodname>ShadowingStore</methodname> implementation.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>ShadowNoFileLockStore</type>.
+		</para>
+		<formalpara>
+			<title>The hashed store</title>
+			<para>
+				The <methodname>HashedStore</methodname> has the same structure for object states as the shadowing stores but has an alternate directory structure that is better suited to storing large numbers of objects of the same type. Using this store objects are scattered amongst a set of directories by applying a 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.
+			</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>HashedStore</type>.
+		</para>
+		<formalpara>
+			<title>The JDBC store</title>
+			<para>
+				The <methodname>JDBCStore</methodname> uses a JDBC database to save persistent object states; when used in conjunction with the Transactional Objects for Java API nested transaction support is available. In the current implementation, all object states are stored as Binary Large Objects (BLOBs) within the same table. The limitation on object state size imposed by using 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.
+			</para>
+		</formalpara>
+		<para>
+			When using the JDBC object store, the application must provide an implementation of the following interface, located in the <code>com.arjuna.ats.arjuna.objectstore</code> package:
+		</para>
+<screen>
+public interface JDBCAccess
+{
+	public Connection getConnection () throws SQLException;
+	public void putConnection (Connection conn) throws SQLException;
+	public void initialise (ObjectName objName);
+}
+</screen>
+		<para>
+			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:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>getConnection</methodname>: returns the Connection to use. This method will be called whenever a connection is required and the 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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>initialise</methodname>: this can be used to pass additional arbitrary information to the implementation.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The JDBC object store will initially request the number of Connections defined in the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial</property> property and will use no more than defined in the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</property> property.
+		</para>
+		<para>
+			The implementation of the <interfacename>JDBCAccess</interfacename> interface to use should be set in the <property>com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess</property> property variable.
+		</para>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>JDBCStore</type>.
+		</para>
+		<para>
+			A JDBC object store can be used for managing the transaction log. In this case, the transaction log implementation should be set to <property>JDBCActionStore</property> and the <methodname>JDBCAccess</methodname> implementation must be provided via the <property>com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this case, the default table name is JBossTSTxTable.
+		</para>
+		<note>
+			<para>
+				It is possible to use the same JDBCAccess implementation for both the user object store and also the transaction log.
+			</para>
+		</note>
+		<formalpara>
+			<title>The cached store</title>
+				<para>
+					This object store used the hashed object store, but does not read or write states to the persistent backing store immediately. It maintains the states in a volatile memory cache and either flushes the cache periodically or when 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.
+				</para>
+		</formalpara>
+		<para>
+			If overriding the object store implementation, the type of this object store is <type>CachedStore</type>.
+		</para>
+		<para>
+			The store can be configured with the following properties:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</property> sets the number of internal stores to hash the states over. The default value is 128.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</property> is the maximum size the cache can reach before a flush is triggered. The default is 10240 bytes.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.removedItems</property> is the maximum number of removed items that the cache can contain before a flush is triggered. By default, calls to remove a state that is in the cache will simply remove the state from the cache, but leave a blank entry (rather than remove the entry immediately, which would 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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</property> sets the time in milliseconds for periodically flushing the cache. The default is 120 seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</property> determines whether flushes of the cache are sync-ed to disk. The default is OFF. To enable, set to ON.
+				</para>
+			</listitem>
+		</itemizedlist>
+    </section>
+</appendix>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_A.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_B.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_B.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_B.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,253 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix>
+   <title>Class definitions</title>
+    
+    <section>
+        <title>Introduction</title>
+	<para>
+		This appendix contains an overview of those classes that the application programmer will typically use. The aim of this appendix is to provide a 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.
+	</para>
+    </section>
+    <section>
+    	<title>Class library</title>
+<!--	<formalpara>
+		<title>Lock Manager</title>
+		<para></para> 
+	</formalpara> -->
+	<example>
+		<title>Lock Manager</title>
+<screen>
+public class LockResult
+{
+	public static final int GRANTED;
+	public static final int REFUSED;
+	public static final int RELEASED;
+};
+	
+public class ConflictType
+{
+	public static final int CONFLICT;
+	public static final int COMPATIBLE;
+	public static final int PRESENT;
+};
+	
+public abstract class LockManager extends StateManager
+{
+	public static final int defaultRetry;
+	public static final int defaultTimeout;
+	public static final int waitTotalTimeout;
+	
+	public final synchronized boolean releaselock (Uid lockUid);
+	public final synchronized int setlock (Lock toSet);
+	public final synchronized int setlock (Lock toSet, int retry);
+	public final synchronized int setlock (Lock toSet, int retry, int sleepTime);
+	public void print (PrintStream strm);
+	public String type ();
+	public boolean save_state (OutputObjectState os, int ObjectType);
+	public boolean restore_state (InputObjectState os, int ObjectType);
+	
+	protected LockManager ();
+	protected LockManager (int ot);
+	protected LockManager (int ot, ObjectName attr);
+	protected LockManager (Uid storeUid);
+	protected LockManager (Uid storeUid, int ot);
+	protected LockManager (Uid storeUid, int ot, ObjectName attr);
+	
+	protected void terminate ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>StateManager</title>
+			<para></para> 
+	</formalpara> -->
+	<example>
+		<title>StateManager</title>
+<screen>
+public class ObjectStatus
+{
+	public static final int PASSIVE;
+	public static final int PASSIVE_NEW;
+	public static final int ACTIVE;
+	public static final int ACTIVE_NEW;
+};
+	
+public class ObjectType
+{
+	public static final int RECOVERABLE;
+	public static final int ANDPERSISTENT;
+	public static final int NEITHER;
+};
+	
+public abstract class StateManager
+{
+	public boolean restore_state (InputObjectState os, int ot);
+	public boolean save_state (OutputObjectState os, int ot);
+	public String type ();
+	
+	public synchronized boolean activate ();
+	public synchronized boolean activate (String rootName);
+	public synchronized boolean deactivate ();
+	public synchronized boolean deactivate (String rootName);
+	public synchronized boolean deactivate (String rootName, boolean commit);
+	
+	public synchronized int status ();
+	public final Uid get_uid ();
+	public void destroy ();
+	public void print (PrintStream strm);
+	
+	protected void terminate ();
+	
+	protected StateManager ();
+	protected StateManager (int ot);
+	protected StateManager (int ot, ObjectName objName);
+	protected StateManager (Uid objUid);
+	protected StateManager (Uid objUid, int ot);
+	protected StateManager (Uid objUid, int ot, ObjectName objName);
+	protected synchronized final void modified ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>Input/OutputObjectState</title>
+			<para></para> 
+		</formalpara> -->
+		<example>
+			<title>Input/OutputObjectState</title>
+<screen>
+class OutputObjectState extends OutputBuffer
+{
+	public OutputObjectState (Uid newUid, String typeName);
+	
+	public boolean notempty ();
+	public int size ();
+	public Uid stateUid ();
+	public String type ();
+};
+class InputObjectState extends ObjectState
+{
+	public OutputObjectState (Uid newUid, String typeName, byte[] b);
+	
+	public boolean notempty ();
+	public int size ();
+	public Uid stateUid ();
+	public String type ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>Input/OutputBuffer</title>
+			<para></para>
+	</formalpara> -->
+	<example>
+		<title>Input/OutputBuffer</title>
+<screen>
+public class OutputBuffer
+{
+	public	OutputBuffer ();
+	
+	public final synchronized boolean valid ();
+	public synchronized byte[] buffer();
+	public synchronized int length ();
+	
+	/* pack operations for standard Java types */
+	
+	public synchronized void packByte (byte b) throws IOException;
+	public synchronized void packBytes (byte[] b) throws IOException;
+	public synchronized void packBoolean (boolean b) throws IOException;
+	public synchronized void packChar (char c) throws IOException;
+	public synchronized void packShort (short s) throws IOException;
+	public synchronized void packInt (int i) throws IOException;
+	public synchronized void packLong (long l) throws IOException;
+	public synchronized void packFloat (float f) throws IOException;
+	public synchronized void packDouble (double d) throws IOException;
+	public synchronized void packString (String s) throws IOException;
+};
+public class InputBuffer
+{
+	public	InputBuffer ();
+	
+	public final synchronized boolean valid ();
+	public synchronized byte[] buffer();
+	public synchronized int length ();
+	
+	/* unpack operations for standard Java types */
+	
+	public synchronized byte unpackByte () throws IOException;
+	public synchronized byte[] unpackBytes () throws IOException;
+	public synchronized boolean unpackBoolean () throws IOException;
+	public synchronized char unpackChar () throws IOException;
+	public synchronized short unpackShort () throws IOException;
+	public synchronized int unpackInt () throws IOException;
+	public synchronized long unpackLong () throws IOException;
+	public synchronized float unpackFloat () throws IOException;
+	public synchronized double unpackDouble () throws IOException;
+	public synchronized String unpackString () throws IOException;
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>Uid</title>
+			<para></para> 
+		</formalpara> -->
+	<example>
+		<title>Uid</title>
+<screen>
+public class Uid implements Cloneable
+{
+	public Uid ();
+	public Uid (Uid copyFrom);
+	public Uid (String uidString);
+	public Uid (String uidString, boolean errorsOk);
+	public synchronized void pack (OutputBuffer packInto) throws IOException;
+	public synchronized void unpack (InputBuffer unpackFrom) throws IOException;
+	
+	public void print (PrintStream strm);
+	public String toString ();
+	public Object clone () throws CloneNotSupportedException;
+	public synchronized void copy (Uid toCopy) throws UidException;
+	public boolean equals (Uid u);
+	public boolean notEquals (Uid u);
+	public boolean lessThan (Uid u);
+	public boolean greaterThan (Uid u);
+	
+	public synchronized final boolean valid ();
+	public static synchronized Uid nullUid ();
+};
+</screen>
+</example>
+<!--	<formalpara>
+		<title>AtomicAction</title>
+			<para></para> 
+		</formalpara> -->
+	<example>
+		<title>AtomicAction</title>
+<screen>
+public class AtomicAction
+{
+	public AtomicAction ();
+	
+	public void begin () throws SystemException, SubtransactionsUnavailable,
+	NoTransaction;
+	public void commit (boolean report_heuristics) throws SystemException, 
+	NoTransaction, HeuristicMixed,
+	HeuristicHazard,TransactionRolledBack;
+	public void rollback () throws SystemException, NoTransaction;
+	public Control control () throws SystemException, NoTransaction;
+	public Status get_status () throws SystemException;
+	/* Allow action commit to be supressed */    
+	public void rollbackOnly () throws SystemException, NoTransaction;
+	
+	public void registerResource (Resource r) throws SystemException, Inactive;
+	public void registerSubtransactionAwareResource (SubtransactionAwareResource sr)
+	throws SystemException, NotSubtransaction;
+	public void registerSynchronization (Synchronization s) throws SystemException,
+	Inactive;
+};
+</screen>
+</example>
+    </section>
+</appendix>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Appendix_B.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,28 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo>
+	<title>JBoss Transactions Programmers Guide CP03</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>1</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is the Enterprise Application Platform edition of the JBoss TS Programmers
+Guide</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/redhat-logo.svg" />
+			</imageobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Book_Info.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,292 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Overview</title>
+    
+    <section>
+        <title>Introduction</title>
+        <para>This chapter contains a description of the use of the <classname>TxCore</classname> transaction engine and the <firstterm>Transactional Objects for Java</firstterm> classes and facilities. The classes mentioned in this chapter are the key to writing fault-tolerant applications using transactions. Thus, after describing them we shall apply them in the construction of a simple application. The classes to be described in this chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and <classname>com.arjuna.ats.arjuna</classname> packages.</para>
+    </section>
+    
+    <section>
+        <title>TxCore – the transaction engine</title>
+        
+        <para>
+            In keeping with the object-oriented view, the mechanisms needed to construct reliable distributed applications are presented to programmers in an object-oriented manner. Some mechanisms need to be inherited, for example, concurrency control and state management; while other mechanisms, such as object storage and transactions, are implemented as <classname>TxCore</classname> objects that are created and manipulated like any other object.
+        </para>
+        
+        <note><para>When the manual talks about using persistence and concurrency control facilities it assumes that the <emphasis>Transactional Objects for Java</emphasis> (TXOJ) classes are being used. If this is not the case then the programmer is responsible for all of these issues.</para></note>
+        
+        <para><classname>TxCore</classname> exploits object-oriented techniques to present programmers with a toolkit of Java classes from which application classes 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.</para>
+        
+        <mediaobject id="figure_1">
+            <imageobject>
+                <imagedata align="center" fileref="images/TXCore_class_hierarchy.png" />
+            </imageobject>
+            <caption> Txcore class hierarchy </caption>
+        </mediaobject>
+        
+        <para>Apart from specifying the scopes of transactions, and setting appropriate locks within objects, the application programmer does not have any other responsibilities: <classname>TxCore</classname> and <emphasis>Transactional Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will be registered with, and be driven by, the appropriate transactions, and crash recovery mechanisms are invoked automatically in the event of failures.</para>
+        
+        <section>
+ 
+             <title>Saving object states</title>
+            
+            <para>
+                <classname>TxCore</classname> needs to be able to remember the state of an object for several purposes, including recovery (the state represents some past state of the object) and persistence (the state represents the final state of an object at application termination). Since these requirements have common functionality they are all implemented using the same mechanism: the classes <classname>InputObjectState</classname> and <classname>OutputObjectState</classname>. The classes maintain an internal array into which instances of the standard types can be contiguously packed (unpacked) using appropriate <command>pack</command> (<command>unpack</command>) operations. This buffer is 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. Any other architecture independent format (such as XDR or ASN.1) could be implemented s!
 imply by replacing the operations with ones appropriate to the encoding required.
+            </para>
+        </section>
+        
+        <section>
+            <title>The object store</title>
+            
+            <para>Implementations of persistence can be affected by restrictions imposed by the Java SecurityManager. Therefore, the object store provided with <classname>TxCore</classname> is implemented using the techniques of interface/implementation. The current distribution has implementations which write object states to the local file system or database, and remote implementations, where the interface uses a client stub (proxy) to remote services.</para>
+            
+            <para>
+                Persistent objects are assigned unique identifiers (instances of the Uid class), when they are created, and this is used to identify them within the object store. States are read using the <literal>read_committed</literal> operation and written by the <literal>write_(un)committed</literal> operations.
+                </para>
+        </section>
+        
+        <section>
+            <title>Recovery and persistence</title>
+            <para>At the root of the class hierarchy is the class <classname>StateManager</classname>. This class is responsible for object activation and deactivation and object recovery. The simplified signature of the class is:</para>
+            
+            <screen>public abstract class StateManager
+{
+    public boolean activate ();
+    public boolean deactivate (boolean commit);
+
+    public Uid get_uid (); // object’s identifier.
+
+    // methods to be provided by a derived class
+
+    public boolean restore_state (InputObjectState os);
+    public boolean save_state (OutputObjectState os);
+
+    protected StateManager ();
+    protected StateManager (Uid id);
+};
+            </screen>
+            
+            <para>Objects are assumed to be of three possible flavours. They may simply be recoverable, in which case <classname>StateManager</classname> will attempt to generate and maintain appropriate recovery information for the object. Such objects have lifetimes that do not exceed the application program that creates them. Objects may be recoverable and persistent, in which case the lifetime of the object is assumed to be greater than that of the creating or accessing application, so that in addition to maintaining recovery information <classname>StateManager</classname> will attempt to automatically load (unload) any existing persistent state for the object by calling the activate (deactivate) 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.</para>
+      
+        
+            <para>If an object is recoverable or recoverable and persistent then <classname>StateManager</classname> will invoke the operations <command>save_state</command> (while performing <command>deactivate</command>), and <command>restore_state</command> (while performing activate) at various points during the execution of the application. These operations must be implemented by the programmer since <classname>StateManager</classname> cannot detect user level state changes. (We are examining the automatic generation of default <command>save_state</command> and <command>restore_state</command> operations, allowing the programmer to override this when application specific knowledge can be used to improve efficiency.) This gives the programmer the ability to decide which parts of an object’s state should be made persistent. For example, for a spreadsheet it may not be necessary to save all entries if some values can simply be recomputed. The <command>save_state</comman!
 d> implementation for a class <classname>Example</classname> that has integer member variables called A, B and C could simply be:</para>
+        
+            <screen>public boolean save_state(OutputObjectState o)
+{
+    if (!super.save_state(o))
+    return false;
+            
+    try
+        {
+            o.packInt(A);
+            o.packInt(B);
+            o.packInt(C));
+        }
+    catch (Exception e)
+        {
+            return false;
+        }
+        
+    return true;
+}                      
+            </screen>
+            
+            <para>Objects are assumed to be of three possible flavours. They may simply be <emphasis>recoverable</emphasis>, in which case <classname>StateManager</classname> will attempt to generate and maintain appropriate recovery information for the object. Such objects have lifetimes that do not exceed the application program that creates them. Objects may be <emphasis>recoverable and persistent</emphasis>, in which case the lifetime of the object is assumed to be greater than that of the creating or accessing application, so that in addition to maintaining recovery information <classname>StateManager</classname> will attempt to automatically load (unload) any existing persistent state for the object by calling the <classname>activate</classname> (<classname>deactivate</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 automat!
 ically attempted.</para>
+            
+            <para>If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable and persistent</emphasis> then <classname>StateManager</classname> will invoke the operations <command>save_state</command> (while performing <command>deactivate</command>), and <command>restore_state</command> (while performing <command>activate</command>) at various points during the execution of the application. These operations must be implemented by the programmer since <classname>StateManager</classname> cannot detect user level state changes. (We are examining the automatic generation of default <classname>save_state</classname> and <classname>restore_state</classname> operations, allowing the programmer to override this when application specific knowledge can be used to improve efficiency.) This gives the programmer the ability to decide which parts of an object’s state should be made persistent. For example, for a spreadsheet it may not be necessary to save all entries if !
 some values can simply be recomputed. The <classname>save_state</classname> implementation for a class <classname>Example</classname> that has integer member variables called A, B and C could simply be:</para>
+            
+            <screen>public boolean save_state(OutputObjectState o)
+{
+    if (!super.save_state(o))
+    return false;
+            
+    try
+    {
+        o.packInt(A);
+        o.packInt(B);
+        o.packInt(C));
+    }
+    catch (Exception e)
+    {
+        return false;
+    }
+                
+return true;
+}
+            </screen>
+            <note><para>It is necessary for all <command>save_state</command> and <command>restore_state</command> methods to call <classname>super.save_state </classname>and <classname>super.restore_state</classname>. This is to cater for improvements in the crash recovery mechanisms.</para></note>
+        </section>
+        
+        <section>
+            <title>The life-cycle of a Transactional Object for Java </title>
+            
+            <para>A persistent object not in use is assumed to be held in a <emphasis>passive</emphasis> state with its state residing in an object store and <emphasis>activated</emphasis> on demand. The fundamental life cycle of a persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="figure_2"/>.</para>
+            
+            <mediaobject id="figure_2">
+                <imageobject>
+			<imagedata align="center" fileref="images/Persistent_Object_Lifecycle.png" />
+                </imageobject>
+                <caption> The lifecycle of a persistent object. </caption>
+            </mediaobject>
+            
+            <itemizedlist>
+                <listitem><para>The object is initially passive, and is stored in the object store as an instance of the class <classname>OutputObjectState</classname>.</para></listitem>
+                <listitem><para>When required by an application the object is automatically activated by reading it from the store using a <command>read_committed</command> operation and is then converted from an <classname>InputObjectState</classname> instance into a fully-fledged object by the <command>restore_state</command> operation of the object.</para></listitem>
+                <listitem><para>When the application has finished with the object it is deactivated by converting it back into an <classname>OutputObjectState</classname> instance using the <command>save_state</command> operation, and is then stored back into the object store as a shadow copy using write_uncommitted. This shadow copy can be committed, overwriting the previous version, using the <command>commit_state</command> operation. The existence of shadow copies is 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.</para></listitem>
+            </itemizedlist>
+            
+            <note><para>During its life time, a persistent object may be made active then passive many times.</para></note>
+         
+        </section>
+        
+        <section>
+            <title>The concurrency controller</title>
+            
+            <para>The concurrency controller is implemented by the class <classname>LockManager</classname> which provides sensible default behaviour while allowing the programmer to override it if deemed necessary by the particular semantics of the class being programmed. As with <classname>StateManager</classname> and persistence, concurrency control implementations are accessed through interfaces. As well as providing access to remote services, the current implementations of concurrency control available to interfaces include:</para>
+            
+            <itemizedlist>
+                <listitem><para>local disk/database implementation, where locks are made persistent by being written to the local file system or database.</para></listitem>
+                <listitem><para>a purely local implementation, where locks are maintained within the memory of the virtual machine which created them; this implementation has better 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</para></listitem>
+            </itemizedlist>
+            
+            <para>The primary programmer interface to the concurrency controller is via the setlock operation. By default, the runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. However, as shown in <xref linkend="figure_1"/>, by inheriting from 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>.</para>
+            
+            <para>Lock acquisition is (of necessity) under programmer control, since just as <classname>StateManager</classname> cannot determine if an operation modifies an object, <classname>LockManager</classname> cannot determine if an operation requires a read or write lock. Lock release, however, is under control of the system and requires no further intervention by the programmer. This ensures that the two-phase property can be correctly maintained.</para>
+            
+            <screen>public abstract class LockManager extends StateManager
+{
+    public LockResult setlock (Lock toSet, int retry, int timeout);
+};</screen>
+            
+            <para>The <classname>LockManager</classname> class is primarily responsible for managing requests to set a lock on an object or to release a lock as appropriate. However, since it is derived from <classname>StateManager</classname>, it can also control when some of the inherited facilities are invoked. For example, <classname>LockManager</classname> assumes that the setting of a write lock implies that the invoking operation must be about to modify the object. This may in turn cause recovery information to be saved if the object is recoverable. In a similar fashion, successful lock acquisition causes activate to be invoked.</para>
+            
+            <para>The code below shows how we may try to obtain a write lock on an object:</para>
+            
+            <screen>public class Example extends LockManager
+{
+public boolean foobar ()
+{
+    AtomicAction A = new AtomicAction;
+    boolean result = false;
+        
+    A.begin();
+        
+    if (setlock(new Lock(LockMode.WRITE), 0) == Lock.GRANTED)
+    {
+        /*
+        * Do some work, and TXOJ will
+        * guarantee ACID properties.
+        */
+        
+        // automatically aborts if fails
+        
+        if (A.commit() == AtomicAction.COMMITTED)
+        {
+            result = true;
+        }
+    }
+    else
+        A.rollback();
+            
+    return result;
+}
+}</screen>
+            
+        </section>
+        
+        <section>
+            <title>The transaction protocol engine</title>
+            
+            <para>The transaction protocol engine is represented by the <classname>AtomicAction</classname> class, which uses <classname>StateManager</classname> in order to record sufficient information for crash recovery mechanisms to complete the transaction in the event of failures. It has methods for starting and terminating the transaction, and, for those situations where programmers require to implement their own resources, methods for registering them with the current 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.</para>
+            
+            <note><para><emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread within an application to share a transaction or execute within its own transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also thread safe.</para></note>
+        </section>
+        
+        <section>
+            <title>Example</title>
+            
+            <para>The simple example below illustrates the relationships between activation, termination and commitment:</para>
+            
+            <screen>{
+    . . .
+    O1 objct1 = new objct1(Name-A);/* (i) bind to "old" persistent object A */
+    O2 objct2 = new objct2();	 /* create a "new" persistent object */
+    OTS.current().begin();		 /* (ii) start of atomic action */
+    
+    objct1.op(...);		      /* (iii) object activation and invocations */
+    objct2.op(...);
+    . . .
+    OTS.current().commit(true); 	/* (iv) tx commits &amp; objects deactivated */
+    } 					/* (v) */</screen>
+            
+            <para>The execution of the above code involves the following sequence of activities:</para>
+            
+            <itemizedlist>
+                <listitem><para>Creation of bindings to persistent objects; this could involve the creation of stub objects and a call to remote objects. In the above example we re-bind to an existing persistent object identified by <literal>Name-A</literal>, and a new persistent object. A naming system for remote objects maintains the mapping between object names and locations and is described in a later chapter.</para></listitem>
+                <listitem><para>Start of the atomic transaction.</para></listitem>
+                <listitem><para>Operation invocations: as a part of a given invocation the object implementation is responsible to ensure that it is locked in read or write mode (assuming no lock conflict), and initialised, if necessary, with the 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.</para></listitem>
+                <listitem><para>Commit of the top-level action. This includes updating of the state of any modified objects in the object store.</para></listitem>
+                <listitem><para>Breaking of the previously created bindings.</para></listitem>
+            </itemizedlist>
+            
+        </section>
+        
+        <section>
+            <title>The class hierarchy</title>
+            
+            <para>The principal classes which make up the class hierarchy of <emphasis>TxCore</emphasis> are depicted below.</para>
+            
+            <screen>StateManager		// Basic naming, persistence and recovery control
+                LockManager		// Basic two-phase locking concurrency control service
+                User-Defined Classes
+                Lock			// Standard lock type for multiple readers/single writer
+                User-Defined Lock Classes
+                AbstractRecord		// Important utility class, similar to Resource
+                    RecoveryRecord	            // handles object recovery
+                    LockRecord		// handles object locking
+                    RecordList		// Intentions list
+                    other management record types
+                AtomicAction		// Implements transaction control abstraction
+                    TopLevelTransaction
+                Input/OutputBuffer // Architecture neutral representation of an objects’ state
+                    Input/OutputObjectState	// Convenient interface to Buffer
+                ObjectStore			// Interface to the object storage services</screen>
+            
+            <para>Programmers of fault-tolerant applications will be primarily concerned with the classes <classname>LockManager</classname>, <classname>Lock</classname> and <classname>AtomicAction</classname>. Other classes important to a programmer are <classname>Uid</classname>, and <classname>ObjectState</classname>. Most <emphasis>TxCore</emphasis> classes are derived from the base class <classname>StateManager</classname>, which provides primitive facilities necessary for managing persistent and recoverable objects. These facilities include support for the activation and de-activation of objects, and state-based object recovery. The class <classname>LockManager</classname> uses the facilities of <classname>StateManager</classname> and <classname>Lock</classname> to provide the concurrency control (two-phase locking in the current implementation) required for implementing the serialisability property of atomic actions. The implementation of atomic action facilities is !
 supported by <classname>AtomicAction</classname> and <classname>TopLevelTransaction</classname>.</para>
+            
+            <para>Most <emphasis>TxCore</emphasis> system classes are derived from the base class <classname>StateManager</classname>, which provides primitive facilities necessary for managing persistent and recoverable objects. These facilities include support for the activation and de-activation of objects, and state-based object recovery. The class <classname>LockManager</classname> uses the facilities of <classname>StateManager</classname> and provides the concurrency control required for implementing the serialisability property of atomic actions.</para>
+            
+            <para>Consider a simple example. Assume that <classname>Example</classname> is a user-defined persistent class suitably derived from the <classname>LockManager</classname>. An application containing an atomic transaction Trans accesses an object (called O) of type <classname>Example</classname> by invoking the operation op1 which involves state changes to O. The serialisability property requires that a write lock must be acquired on O before it is modified; thus the body of op1 should contain a call to the <literal>setlock</literal> operation of the concurrency controller:</para>
+            
+            <screen>public boolean op1 (...)
+{	
+    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)
+    {
+        // actual state change operations follow 
+        ...
+    }
+}</screen>
+            
+            <para>The operation <literal>setlock</literal>, provided by the <classname>LockManager</classname> class, performs the following functions in this case:</para>
+            
+            <itemizedlist>
+                <listitem><para>Check write lock compatibility with the currently held locks, and if allowed:</para></listitem>
+                <listitem><para>Call the <classname>StateManager</classname> operation activate that will load, if not done already, the latest persistent state of O from the object store. Then call the <classname>StateManager</classname> operation modified which has the effect of creating an instance of either <classname>RecoveryRecord</classname> or <classname>PersistenceRecord</classname> for O depending upon whether O was persistent or not (the Lock is a <literal>WRITE</literal> lock so the old state of the object must be retained prior to modification) and inserting it into the <classname>RecordList</classname> of <classname>Trans</classname>.</para></listitem>
+                <listitem><para>Create and insert a LockRecord instance in the RecordList of Trans.</para></listitem>
+            </itemizedlist>
+            
+            <para>Now suppose that action <literal>Trans</literal> is aborted sometime after the lock has been acquired. Then the rollback operation of <classname>AtomicAction</classname> will process the <classname>RecordList</classname> instance associated with <literal>Trans</literal> by invoking an appropriate <literal>Abort</literal> operation on the various records. The implementation of this operation by the <classname>LockRecord</classname> class will release the <literal>WRITE</literal> lock while that of <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</classname>  will restore the prior state of O.</para>
+            
+            <para>It is important to realise that all of the above work is automatically being performed by <emphasis>TxCore</emphasis> on behalf of the application programmer. The programmer need only start the transaction and set an appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional Objects for Java</emphasis> take care of participant registration, persistence, concurrency control and recovery.</para>
+            
+        </section>
+        
+        
+        
+    </section>
+    
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,652 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Using TxCore</title>
+    
+    <section>
+        <title>Introduction</title>
+        
+        <para>In this section we shall describe <emphasis>TxCore</emphasis> and <emphasis>Transactional Objects for Java</emphasis> in more detail, and show how it can be used to construct transactional applications.</para>
+    </section>
+    
+    <section>
+        <title>State management</title>
+        
+        <section>
+            <title>Object States</title>
+            
+            <para><emphasis>TxCore</emphasis> needs to be able to remember the state of an object for several purposes, including recovery (the state represents some past state of the object), and for persistence (the state represents the final state of an object at application termination). Since all of these requirements require common functionality they are all implemented using the same mechanism - the classes <classname>Input/OutputObjectState</classname> and <classname>Input/OutputBuffer</classname>.</para>
+            
+            <formalpara><title>OutputBuffer</title>
+                
+                <para><programlisting>public class OutputBuffer
+{
+public OutputBuffer ();
+
+public final synchronized boolean valid ();
+public synchronized byte[] buffer();
+public synchronized int length ();
+
+    /* pack operations for standard Java types */
+
+public synchronized void packByte (byte b) throws IOException;
+public synchronized void packBytes (byte[] b) throws IOException;
+public synchronized void packBoolean (boolean b) throws IOException;
+public synchronized void packChar (char c) throws IOException;
+public synchronized void packShort (short s) throws IOException;
+public synchronized void packInt (int i) throws IOException;
+public synchronized void packLong (long l) throws IOException;
+public synchronized void packFloat (float f) throws IOException;
+public synchronized void packDouble (double d) throws IOException;
+public synchronized void packString (String s) throws IOException;
+};</programlisting></para></formalpara>
+            
+            <formalpara><title>InputBuffer</title><para><programlisting>public class InputBuffer
+{
+public InputBuffer ();
+
+public final synchronized boolean valid ();
+public synchronized byte[] buffer();
+public synchronized int length ();
+
+/* unpack operations for standard Java types */
+
+public synchronized byte unpackByte () throws IOException;
+public synchronized byte[] unpackBytes () throws IOException;
+public synchronized boolean unpackBoolean () throws IOException;
+public synchronized char unpackChar () throws IOException;
+public synchronized short unpackShort () throws IOException;
+public synchronized int unpackInt () throws IOException;
+public synchronized long unpackLong () throws IOException;
+public synchronized float unpackFloat () throws IOException;
+public synchronized double unpackDouble () throws IOException;
+public synchronized String unpackString () throws IOException;
+};</programlisting></para></formalpara>
+            
+            <para>The <classname>Input/OutputBuffer</classname> class maintains an internal array into which instances of the standard Java types can be contiguously packed (unpacked) using the pack (unpack) operations. This buffer is 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.</para>
+
+            <formalpara><title>OutputObjectState</title>
+                
+                <para><programlisting>class OutputObjectState extends OutputBuffer
+{
+public OutputObjectState (Uid newUid, String typeName);
+
+public boolean notempty ();
+public int size ();
+public Uidpublic class InputBuffer
+{
+public InputBuffer ();
+
+public final synchronized boolean valid ();
+public synchronized byte[] buffer();
+public synchronized int length ();
+
+/* unpack operations for standard Java types */
+
+public synchronized byte unpackByte () throws IOException;
+public synchronized byte[] unpackBytes () throws IOException;
+public synchronized boolean unpackBoolean () throws IOException;
+public synchronized char unpackChar () throws IOException;
+public synchronized short unpackShort () throws IOException;
+public synchronized int unpackInt () throws IOException;
+public synchronized long unpackLong () throws IOException;
+public synchronized float unpackFloat () throws IOException;
+public synchronized double unpackDouble () throws IOException;
+public synchronized String unpackString () throws IOException;
+};</programlisting></para></formalpara>
+            
+            <para>The <classname>Input/OutputBuffer</classname> class maintains an internal array into which instances of the standard Java types can be contiguously packed (unpacked) using the pack (unpack) operations. This buffer is 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.</para>
+            
+            <formalpara>
+                <title>
+                    OutputObjectState   
+                </title>
+                
+                <para>
+                    <programlisting>class OutputObjectState extends OutputBuffer
+{
+    public OutputObjectState (Uid newUid, String typeName);
+    
+    public boolean notempty ();
+    public int size ();
+    public Uid stateUid ();
+    public String type ();
+};</programlisting>
+                    </para>
+                    
+            </formalpara>
+            
+            
+            <formalpara>
+                <title>InputObjectState</title>
+                <para>
+                    <programlisting>class InputObjectState extends InputBuffer
+{
+    public OutputObjectState (Uid newUid, String typeName, byte[] b);
+    
+    public boolean notempty ();
+    public int size ();
+    public Uid stateUid ();
+    public String type ();
+};</programlisting>   
+                </para>
+            </formalpara>
+           
+            
+            <para>The class <classname>Input/OutputObjectState</classname> provides all the functionality of <classname>Input/OutputBuffer</classname> (through inheritance) but adds two additional instance variables that signify the Uid and type of the object for which the <classname>Input/OutputObjectState</classname> instance is a compressed image. These are used when accessing the object store during storage and retrieval of the object state.</para>
+    </section>
+    
+    <section>
+        <title>The object store</title>
+        
+        <para>The object store provided with <emphasis>TxCore</emphasis> deliberately has a fairly restricted interface so that it can be implemented in a variety of ways. For example, object stores are implemented in shared memory; on the 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.</para>
+        
+        <note><para>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.</para></note>
+        
+        <para>All of the object stores hold and retrieve instances of the class <classname>Input/OutputObjectState</classname>. These instances are named by the Uid and Type of the object that they represent. States are read using the <command>read_committed</command> operation and written by the system using the <command>write_uncommitted</command> operation. Under normal operation new object states do not overwrite old object states but are written to the store as shadow copies. These shadows replace the original only when the <command>commit_state</command> operation is invoked. Normally all interaction with the object store is performed by <emphasis>TxCore</emphasis> system components as appropriate thus the existence of any shadow versions of objects in the store are hidden from the programmer.</para>
+        
+        <screen>public class ObjectStore
+{
+public static final int OS_COMMITTED;
+public static final int OS_UNCOMMITTED;
+public static final int OS_COMMITTED_HIDDEN;
+public static final int OS_UNCOMMITTED_HIDDEN;
+public static final int OS_UNKNOWN;
+
+/* The abstract interface */
+public abstract boolean commit_state (Uid u, String name)
+throws ObjectStoreException;
+public abstract InputObjectState read_committed (Uid u, String name)
+throws ObjectStoreException;
+public abstract boolean write_uncommitted (Uid u, String name,
+OutputObjectState os) throws ObjectStoreException;
+. . .
+};</screen>
+        
+        <para>When a transactional object is committing it is necessary for it to make certain state changes persistent in order that it can recover in the event of a failure and either continue to commit, or rollback. When using <emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</emphasis> will take care of this automatically. To guarantee ACID properties, these state changes must be flushed to the persistence store implementation before the transaction can proceed to commit; if they are not, the application may assume that the transaction has committed when in fact the state changes may still reside within an operating system cache, and may be lost by a subsequent machine failure. By default, <emphasis>TxCore</emphasis> ensures that such state changes are flushed. However, doing so can impose a significant performance penalty on the application. To prevent transactional object state flushes, set the <literal>com.arjuna.ats.arjuna.objectstore.objectStore!
 Sync</literal> variable to OFF.</para>
+        
+    </section>
+        
+        <section><title>Selecting an object store implementation</title>
+        
+        <para>
+            <emphasis>TxCore</emphasis> comes with support for several different object store implementations. The Appendix describes these implementations, how to select and configure a given implementation (using the <literal>com.arjuna.ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per object basis, and indicates how additional implementations can be provided.
+        </para>
+        
+        </section>
+        
+        <section>
+            
+            <title>StateManager</title>
+        
+            <para>The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> manages the state of an object and provides all of the basic support mechanisms required by an object for state management purposes. <classname>StateManager</classname> is responsible for creating and registering appropriate resources concerned with the persistence and recovery of the transactional object. If a transaction is nested, then <classname>StateManager</classname> will also propagate these resources between child transactions and their parents at commit time.</para>
+        
+        <para>
+            Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible basic flavours. They may simply be recoverable, in which case <classname>StateManager</classname> will attempt to generate and maintain appropriate recovery information for the object (as instances of the class <classname>Input/OutputObjectState</classname>) . Such objects have lifetimes that do not exceed the application program that creates them. Objects may be recoverable and persistent, in which case the lifetime of the object is assumed to be greater than that of the creating or accessing application so that in addition to maintaining recovery information <classname>StateManager</classname> will attempt to automatically load (unload) any existing persistent state for the object by calling the <command>activate</command> (<command>deactivate</command>) 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. This object property is selected 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.
+        </para>
+            
+            <screen>public class ObjectStatus
+{
+    public static final int PASSIVE;
+    public static final int PASSIVE_NEW;
+    public static final int ACTIVE;
+    public static final int ACTIVE_NEW;
+    public static final int UNKNOWN_STATUS;
+};
+
+public class ObjectType
+{
+    public static final int RECOVERABLE;
+    public static final int ANDPERSISTENT;
+    public static final int NEITHER;
+};
+
+public abstract class StateManager
+{
+    public synchronized boolean activate ();
+    public synchronized boolean activate (String storeRoot);
+    public synchronized boolean deactivate ();
+    public synchronized boolean deactivate (String storeRoot, boolean commit);
+    
+    public synchronized void destroy ();
+    
+    public final Uid get_uid ();
+    
+    public boolean restore_state (InputObjectState, int ObjectType);
+    public boolean save_state (OutputObjectState, int ObjectType);
+    public String type ();
+    . . .
+    
+    protected StateManager ();
+    protected StateManager (int ObjectType, ObjectName attr);
+    protected StateManager (Uid uid);
+    protected StateManager (Uid uid, ObjectName attr);
+    . . .
+    
+    protected final void modified ();
+    . . .
+};
+
+public class ObjectModel
+{
+    public static final int SINGLE;
+    public static final int MULTIPLE;
+};</screen>
+            
+            <para>If an object is recoverable (or persistent) then <classname>StateManager</classname> will invoke the operations <command>save_state</command> (while performing <command>deactivation</command>), <command>restore_state</command> (while performing activate) and type at various points during the execution of the application. These operations must be implemented by the programmer since <classname>StateManager</classname> does not have access to a runtime description of the layout of an arbitrary Java object in memory and thus cannot implement a default policy for converting the in memory version of the object to its passive form. However, the capabilities provided by <classname>Input/OutputObjectState</classname> make the writing of these routines fairly simple. For example, the <command>save_state</command> implementation for a class <classname>Example</classname> that had member variables called A, B and C could simply be the following:</para>
+            
+            <screen>public boolean save_state ( OutputObjectState os, int ObjectType )
+{
+    if (!super.save_state(os, ObjectType))
+    return false;
+    
+    try
+    {
+        os.packInt(A);
+        os.packString(B);
+        os.packFloat(C);
+    
+        return true;
+    }
+    catch (IOException e)
+    {
+        return false;
+    }
+}</screen>
+            
+            <para>In order to support crash recovery for persistent objects it is necessary 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>.</para>
+            
+            <note><para>The type method is used to determine the location in the object store where the state of instances of that class will be saved and ultimately restored. 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.</para></note>
+            
+            <para>The <command>get_uid</command> operation of <classname>StateManager</classname> provides read only access to an object’s internal system name for whatever purpose the programmer requires (such as registration of the name in a name server). The value of the internal system name can only be set when an object is initially constructed - either by the provision of an explicit parameter or by generating a new identifier when the object is created.</para>
+            
+            <para>The <command>destroy</command> method can be used to remove the object’s state from the object store. This is an atomic operation, and therefore will 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.</para>
+            
+            <para>Since object recovery and persistence essentially have complimentary requirements (the only difference being where state information is stored and for what purpose) <classname>StateManager</classname> effectively combines the management of these two properties into a single mechanism. That is, it uses instances of the class Input/OutputObjectState both for recovery and persistence purposes. An additional argument passed to the <command>save_state</command> and <command>restore_state</command> 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.</para>
+            
+            
+        </section>
+        
+        <section>
+            <title>Object Models</title>
+            
+            <para><emphasis>TxCore</emphasis> supports two models for objects, which as we shall show affect how an objects state and concurrency control are implemented:</para>
+            
+            <itemizedlist>
+                <listitem><para><termdef>SINGLE</termdef>: only a single copy of the object exists within the application; this will reside within a single JVM, and all clients must address their invocations to this server. This model provides better 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.</para>
+                
+                    <mediaobject id="figure_3">
+                        <imageobject>
+                            <imagedata align="center" fileref="images/Single_Object.png" />
+                        </imageobject>
+                        <caption> Single Object Model</caption>
+                    </mediaobject>
+                
+                </listitem>
+                <listitem><para>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.</para>
+                
+                
+                    <mediaobject id="figure_4">
+                        <imageobject>
+                            <imagedata align="center" fileref="images/Multiple_Object.png" />
+                        </imageobject>
+                        <caption> Multiple Object Model</caption>
+                    </mediaobject>
+                </listitem>
+            </itemizedlist>
+            
+            <para>The default model is SINGLE. The programmer can override this on a per object basis by providing an appropriate instance of the <classname>com.arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object construction.</para>
+            
+            <note><para>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.</para></note>
+            
+            <para>
+                To provide a suitable <classname>ObjectName</classname> class, it is necessary to perform the following steps:
+            </para>
+            
+            <itemizedlist>
+                <listitem><para>create a new instance of <classname>ObjectName</classname>.</para></listitem>
+                <listitem><para>set the object model attribute using the <literal>com.arjuna.ats.arjuna.ArjunaNames.StateManager_objectModel()</literal> name.</para></listitem>
+            </itemizedlist>
+            
+            <para>For example:</para>
+            
+            <programlisting>{
+    ObjectName attr = new ObjectName(“SNS:myObjectName”);
+    
+    attr.setLongAttribute(ArjunaNames.StateManager_objectModel(),
+    ObjectModel.SINGLE);
+    
+    AtomicObject obj = new AtomicObject(ObjectType.ANDPERSISTENT, attr);
+                }</programlisting>
+            
+            
+            
+        </section>
+        
+        <section>
+            <title>Summary</title>
+            
+            <para>In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</classname> manages the state of an object and provides all of the basic support mechanisms required by an object for state management purposes. Some operations must be defined by the class developer. These operations are: <command>save_state</command>, <command>restore_state</command>, and <command>type</command>.</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term><literal>boolean save_state (OutputObjectState state, int ObjectType)</literal></term>
+                    <listitem><para>Invoked whenever the state of an object might need to be saved for future use - primarily for recovery or persistence purposes. The <literal>ObjectType</literal> parameter indicates the reason that <command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. This enables the programmer to save different pieces of information into the <classname>OutputObjectState</classname> supplied as the first parameter depending upon whether the state is needed for recovery or persistence purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects might be saved simply as pointers for recovery purposes but as Uid’s for persistence purposes. As shown earlier, the <classname>OutputObjectState</classname> class provides convenient operations to allow the saving of instances of all of the basic types in Java. In order to support crash recovery for persistent objects it is necessary for all <command>save_state</command> metho!
 ds to call <command>super.save_state</command>.</para>
+                    
+                        <note><para><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.</para></note></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><literal>boolean restore_state (InputObjectState state, int ObjectType)</literal></term>
+                    <listitem><para>Invoked whenever the state of an object needs to be restored to the one supplied. Once again the second parameter allows different interpretations 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>.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><literal>String type ()</literal></term>
+                    <listitem><para>The <emphasis>TxCore</emphasis> persistence mechanism requires a means of determining the type of an object as a string so that it can save/restore the state of the object into/from the object store. By convention this information indicates the position of the class in the hierarchy. For example, “/<classname>StateManager</classname>/<classname>LockManager</classname>/<classname>Object</classname>”.</para>
+                    
+                        <note><para>The type method is used to determine the location in the object store where the state of instances of that class will be saved and ultimately restored. 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.</para></note></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            
+        </section>
+        
+        <section>
+            <title>Example</title>
+            
+            <para>
+                Consider the following basic <classname>Array</classname> class derived from the <classname>StateManager</classname> class (in this example, to 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):
+            </para>
+            
+            <programlisting>public class Array extends StateManager
+{
+    public Array ();
+    public Array (Uid objUid);
+    public void finalize ( super.terminate(); };
+    
+    /* Class specific operations. */
+    
+    public boolean set (int index, int value);
+    public int get (int index);
+    
+    /* State management specific operations. */
+    
+    public boolean save_state (OutputObjectState os, int ObjectType);
+    public boolean restore_state (InputObjectState os, int ObjectType);
+    public String type ();
+    
+    public static final int ARRAY_SIZE = 10;
+    
+    private int[] elements = new int[ARRAY_SIZE];
+    private int highestIndex;
+    };</programlisting>
+            
+            <para>
+                The <command>save_state</command>, <command>restore_state</command> and <command>type</command> operations can be defined as follows:
+            </para>
+            
+            <programlisting>/* Ignore ObjectType parameter for simplicity */
+
+public boolean save_state (OutputObjectState os, int ObjectType)
+{
+    if (!super.save_state(os, ObjectType))
+        return false;
+    
+    try
+    {    
+        packInt(highestIndex);
+
+        /*
+        * Traverse array state that we wish to save. Only save active elements
+        */
+
+        for (int i = 0; i &lt;= highestIndex; i++)
+            os.packInt(elements[i]);
+            
+        return true;
+    }
+    catch (IOException e)
+    {
+        return false;
+    }
+}
+ 
+public boolean restore_state (InputObjectState os, int ObjectType)
+{
+    if (!super.restore_state(os, ObjectType))
+        return false;
+    
+    try
+    {
+        int i = 0;
+    
+        highestIndex = os.unpackInt();
+    
+        while (i &lt; ARRAY_SIZE)
+        {
+            if (i &lt;= highestIndex)
+                elements[i] =  os.unpackInt();
+            else
+                elements[i] = 0;
+            i++;
+        }
+        
+        return true;
+        }
+    catch (IOException e)
+    {
+        return false;
+    }
+}
+ 
+public String type ()
+{
+    return "/StateManager/Array";
+}</programlisting>
+        </section>
+    </section>
+    
+    <section>
+        <title>Lock management and concurrency control</title>
+        
+        <para>Concurrency control information within <emphasis>TxCore</emphasis> is maintained by locks. Locks which are required to be shared between objects in different processes may be held within a lock store, similar to the object store facility presented previously. The lock store provided with <emphasis>TxCore</emphasis> deliberately has a fairly restricted interface so that it can be implemented in a variety of ways. For example, lock stores are implemented in shared memory; on the Unix file system (in several 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.</para>
+        
+        <note><para>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.</para></note>
+        
+        <programlisting>public class LockStore
+{
+    public abstract InputObjectState read_state (Uid u, String tName)
+    throws LockStoreException;
+    
+    public abstract boolean remove_state (Uid u, String tname);
+    public abstract boolean write_committed (Uid u, String tName,
+    OutputObjectState state);
+    };</programlisting>
+        
+        <section>
+            <title>Selecting a lock store implementation</title>
+            
+            <para><emphasis>TxCore</emphasis> comes with support for several different object store implementations. If the object model being used is SINGLE, then no lock store is required for maintaining locks, since the information about the object is not exported from it. However, if the MULTIPLE model is used, then different run-time environments (processes, Java virtual machines) may need to share concurrency control information. The implementation type of the lock store to use can be specified for all objects within a given execution environment using the <literal>com.arjuna.ats.txoj.lockstore.lockStoreType</literal> property variable. Currently this can have one of the following values:</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term>BasicLockStore</term>
+                    <listitem><para>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.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>BasicPersistentLockStore</term>
+                    <listitem><para>This is the default implementation, and stores locking information within the local file system. Therefore execution environments that share the same file store can share concurrency control information. The root of the file system into which locking information is written is the <filename>LockStore</filename> directory within the <emphasis>TxCore</emphasis> installation directory. This can be overridden at runtime by setting the <literal>com.arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable accordingly, or placing the location within the <literal>CLASSPATH</literal>:</para>
+                    
+                        <para><command>java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore myprogram</command></para>
+                    
+                    <para>or</para>
+                    
+                        <para><command>java –classpath $CLASSPATH;/var/tmp/LockStore myprogram</command></para>
+                    
+                        <para>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.</para></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            
+            
+        </section>
+        
+        <section>
+            <title>LockManager</title>
+            
+            <para>The concurrency controller is implemented by the class <classname>LockManager</classname> which provides sensible default behaviour while allowing the programmer to override it if deemed necessary by the particular semantics of the class being programmed. The primary programmer interface to the concurrency controller is via the setlock operation. By default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-phase locking following a multiple reader, single writer policy on a per object basis. Lock acquisition is under programmer control, since just as <classname>StateManager</classname> cannot determine if an operation modifies an object, <classname>LockManager</classname> cannot determine if an operation requires a read or write lock. Lock release, however, is 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. </para>
+            
+            <para>The <classname>LockManager</classname> class is primarily responsible for managing requests to set a lock on an object or to release a lock as appropriate. However, since it is derived from <classname>StateManager</classname>, it can also control when some of the inherited facilities are invoked. For example, if a request to set a write lock is granted, then <classname>LockManager</classname> invokes modified directly assuming that the setting of a write lock implies that the invoking operation must be about to modify the object. This may in turn cause recovery information to be saved if the object is recoverable. In a similar fashion, successful lock acquisition causes <command>activate</command> to be invoked.</para>
+        
+            <para>Therefore, <classname>LockManager</classname> is directly responsible for activating/de-activating persistent objects, and registering <classname>Resources</classname> for managing concurrency control. By driving the <classname>StateManager</classname> class, it is also responsible for registering <classname>Resources</classname> for persistent/recoverable state manipulation and object recovery. The application programmer simply sets appropriate locks, starts and ends transactions, and extends the <command>save_state</command> and <command>restore_state</command> methods of <classname>StateManager</classname>.</para>
+            
+            <programlisting>public class LockResult
+{
+public static final int GRANTED;
+public static final int REFUSED;
+public static final int RELEASED;
+};
+
+public class ConflictType
+{
+public static final int CONFLICT;
+public static final int COMPATIBLE;
+public static final int PRESENT;
+};
+
+public abstract class LockManager extends StateManager
+{
+public static final int defaultTimeout;
+public static final int defaultRetry;
+public static final int waitTotalTimeout;
+
+public synchronized int setlock (Lock l);
+public synchronized int setlock (Lock l, int retry);
+public synchronized int setlock (Lock l, int retry, int sleepTime);
+public synchronized boolean releaselock (Uid uid);
+
+/* abstract methods inherited from StateManager */
+
+public boolean restore_state (InputObjectState os, int ObjectType);
+public boolean save_state (OutputObjectState os, int ObjectType);
+public String type ();
+
+protected LockManager ();
+protected LockManager (int ObjectType, ObjectName attr);
+protected LockManager (Uid storeUid);
+protected LockManager (Uid storeUid, int ObjectType, ObjectName attr);
+. . .
+};</programlisting>
+            
+            <para>The <command>setlock</command> operation must be parameterised with the type 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:</para>
+            
+            <para>
+                If the retry value is equal to <literal>LockManager.waitTotalTimeout</literal>, then the thread which called <command>setlock</command> will be blocked until the lock is released, or the total timeout specified has elapsed, and in which <literal>REFUSED</literal> will be returned.
+            </para>
+            
+            <para>If the lock cannot be obtained initially then <classname>LockManager</classname> will try for the specified number of retries, waiting for the specified timeout value between each failed attempt. The default is 100 attempts, each attempt being separated by a 0.25 seconds delay; the time between retries is specified in micro-seconds.</para>
+            
+            <para>If a lock conflict occurs the current implementation simply times out lock requests, thereby preventing deadlocks, rather than providing a full deadlock detection scheme. If the requested lock is obtained, the setlock operation will return the value <literal>GRANTED</literal>, otherwise the value <literal>REFUSED</literal> is returned. It is the responsibility of 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.</para>
+            
+            <programlisting>res = setlock(new Lock(WRITE), 10);	
+    // Will attempt to set a
+    // write lock 11 times (10
+    // retries) on the object
+    // before giving up.
+                
+res = setlock(new Lock(READ), 0);	
+    // Will attempt to set a read
+    // lock 1 time (no retries) on
+    // the object before giving up.
+    
+res = setlock(new Lock(WRITE);	
+    // Will attempt to set a write
+    // lock 101 times (default of
+    // 100 retries) on the object
+    // before giving up.</programlisting>
+
+            <para>The concurrency control mechanism is integrated into the atomic action mechanism, thus ensuring that as locks are granted on an object appropriate information is registered with the currently running atomic action to ensure that the locks are released at the correct time. This frees the programmer from the burden of explicitly freeing any acquired locks if they were acquired within atomic actions. However, if locks are acquired on an object <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.</para>        
+            
+            </section>
+                
+                <section>
+                    <title>Locking policy</title>
+                    
+                    <para>Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not special system types. Instead they are simply instances of other <emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> which is also derived from <classname>StateManager</classname> so that locks may be made persistent if required and can also be named in a simple fashion). Furthermore, <classname>LockManager</classname> deliberately has no knowledge of the semantics of the actual policy by which lock requests are granted.  Such information is maintained by the actual <classname>Lock</classname> class instances which provide operations (the <literal>conflictsWith</literal> operation) by which <classname>LockManager</classname> can determine if two locks conflict or not. This separation is important in that it allows the programmer to derive new lock types from the basic <classname>Lock</classname> class and by providing appropriate definitions of the confli!
 ct operations enhanced levels of concurrency may be possible.</para>
+                    
+                    <programlisting>public class LockMode
+{
+    public static final int READ;
+    public static final int WRITE;
+};
+
+public class LockStatus
+{
+    public static final int LOCKFREE;
+    public static final int LOCKHELD;
+    public static final int LOCKRETAINED;
+};
+
+public class Lock extends StateManager
+{
+    public Lock (int lockMode);
+    
+    public boolean conflictsWith  (Lock otherLock);
+    public boolean modifiesObject ();
+    
+    public boolean restore_state (InputObjectState os, int ObjectType);
+    public boolean save_state (OutputObjectState os, int ObjectType);
+    public String type ();
+    . . .
+};</programlisting>
+                    
+                    <para>The <classname>Lock</classname> class provides a <command>modifiesObject</command> operation which <classname>LockManager</classname> uses to determine if granting this locking request requires a call on modified. This operation is provided so that locking modes other than simple read and write can be supported. The supplied <classname>Lock</classname> class supports the traditional multiple reader/single writer policy.</para>
+                    
+                </section>
+        
+        <section>
+            <title>Object construction and destruction</title>
+            
+            <para>Recall that <emphasis>TxCore</emphasis> objects can be recoverable; recoverable and persistent; or neither. Additionally each object possesses a unique internal name. These attributes can only be set when that object is constructed. Thus <classname>LockManager</classname> provides two protected constructors for use by derived classes, each of which fulfils a distinct purpose:</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term><command>LockManager ()</command></term>
+                    <listitem><para>This constructor allows the creation of new objects, that is, no prior state is assumed to exist.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><command>LockManager (int ObjectType, ObjectName attr)</command></term>
+                    <listitem><para>As above, this constructor allows the creation of new objects, that is, no prior state is assumed to exist. The <literal>ObjectType</literal> parameter determines whether an object is simply recoverable (indicated by <literal>RECOVERABLE</literal>); recoverable and persistent (indicated by <literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). If an object is marked as being persistent then the state of the object will be stored in one of the object stores. The shared parameter only has meaning if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not null and the object model is <literal>SINGLE</literal> (the default behaviour) then the recoverable state of the object is maintained within the 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. </para>
+                    
+                        <para>Constructors for new persistent objects should make use of atomic actions within themselves. This will ensure that the state of the object is automatically written to the object store either when the action in the constructor commits or, if an enclosing action exists, when the appropriate top-level action commits. Later examples in this chapter illustrate this point further.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><command>LockManager(Uid objUid)</command></term>
+                    <listitem><para>This constructor allows access to an existing persistent object, whose internal name is given by the <literal>objUid</literal> parameter. Objects constructed using this operation will normally have their prior state (identified by <literal>objUid</literal>) loaded from an object store automatically by the system.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term><command>LockManager(Uid objUid, ObjectName attr)</command></term>
+                    <listitem><para>As above, this constructor allows access to an existing persistent object, whose internal name is given by the <literal>objUid</literal> parameter. Objects constructed using this operation will normally have their prior state (identified by <literal>objUid</literal>) loaded from an object store 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.</para>
+                    
+                        <para>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.</para>
+                    
+                        <para>Because <classname>LockManager</classname> inherits from <classname>StateManager</classname>, it will pass any supplied <classname>ObjectName</classname> instance to the <classname>StateManager</classname> class. As such, it is possible to set the <classname>StateManager</classname> object model as described earlier.</para></listitem>
+                </varlistentry>
+                
+             
+                
+                
+            </variablelist>
+            
+        </section>
+        
+        
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_02.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,247 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+     <title>General Transaction Issues</title>
+    
+    <section>
+        
+        <title>Advanced transaction issues with TxCore</title>
+        
+        <para>Atomic actions (transactions) can be used by both application programmers and class developers. Thus entire operations (or parts of operations) can be 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.</para>
+        
+        <section>
+            <title>Checking transactions</title>
+            
+            <para>In a multi-threaded application, multiple threads may be associated with a transaction during its lifetime, i.e., the thread’s share the context. In addition, it is possible that if one thread terminates a transaction other threads may still be active within it. In a distributed environment, it can be difficult to guarantee that all threads have finished with a transaction when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a warning if a thread terminates a transaction when other threads are still active within it; however, it will allow the transaction termination to continue. Other solutions to this problem are possible, e.g., blocking the thread which is terminating the transaction until all other threads have disassociated themselves from the transaction context. Therefore, <emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna.coordinator.CheckedAction</classname> class, which allows the thread/transaction t!
 ermination policy to be overridden. Each transaction has an instance of this class associated with it, and application programmers can provide their own implementations on a per transaction basis.</para>
+            
+            <programlisting>public class CheckedAction
+{
+public CheckedAction ();
+
+public synchronized void check (boolean isCommit, Uid actUid,
+BasicList list);
+};</programlisting>
+            
+            <para>When a thread attempts to terminate the transaction and there are active 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:</para>
+            
+            <variablelist>
+                <varlistentry>
+                    <term>isCommit</term>
+                    <listitem><para>Indicates whether the transaction is in the process of committing or rolling back.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>actUid</term>
+                    <listitem><para>The transaction identifier.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>list</term>
+                    <listitem><para>a list of all of the threads currently marked as active within this transaction.</para></listitem>
+                </varlistentry>
+                
+                
+            </variablelist>
+            
+            <para>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.</para>
+            
+        </section>
+        
+        <section>
+            <title>Statistics gathering</title>
+            
+            <para>By default, the JBossTS does not maintain any history information about transactions. However, by setting the <literal>com.arjuna.ats.arjuna.coordinator.enableStatistics</literal> property variable to YES, the transaction service will maintain information about the number of transactions created, and their outcomes. This information can be obtained during the execution of a transactional application via the <classname>com.arjuna.TxCore.Atomic.TxStats</classname> class:</para>
+            
+            <programlisting>public class TxStats
+{
+
+/**
+* Returns the number of transactions (top-level and nested)
+* created so far.
+*/
+
+public static int numberOfTransactions ();
+
+/**
+* Returns the number of nested (sub) transactions created so far.
+*/
+
+public static int numberOfNestedTransactions ();
+
+/**
+* Returns the number of transactions which have terminated with
+* heuristic outcomes.
+*/
+
+public static int numberOfHeuristics ();
+
+/**
+* Returns the number of committed transactions.
+*/
+
+public static int numberOfCommittedTransactions ();
+
+/**
+* Returns the number of transactions which have rolled back.
+*/
+
+public static int numberOfAbortedTransactions ();
+
+}</programlisting>
+            
+            
+        </section>
+        
+        <section>
+            <title>Last resource commit optimisation</title>
+                
+            <para>In some cases it may be necessary to enlist participants that aren’t two-phase commit aware into a two-phase commit transaction. If there is only a single resource then there is no need for two-phase commit. However, what if there are multiple resources in the transaction? In this case, the Last Resource Commit optimization (LRCO) comes into play. It is possible for a single resource that is one-phase aware (i.e., can only commit or roll back, with no prepare), to be enlisted in a transaction with two-phase commit aware resources. The coordinator treats the one-phase aware resource slightly differently, in that it executes the prepare phase on all other resource first, and if it then intends to commit the transaction it passes control to the one-phase aware resource. If it commits, then the coordinator logs the decision to commit and attempts to commit the other resources as well.</para>
+            
+            <para>In order to utilise the LRCO, your participant must implement the <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface and be registered with the transaction through the <command>BasicAction</command>.add operation; since this operation expects instances of <classname>AbstractRecord</classname>, you must create an instance <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give your participant as the constructor parameter, as shown below:</para>
+            
+            <programlisting>try
+                {
+                boolean success = false;
+                AtomicAction A = new AtomicAction();
+                OnePhase opRes = new OnePhase();  // used OnePhase interface
+                
+                System.err.println("Starting top-level action.");
+                
+                A.begin();
+                A.add(new LastResourceRecord(opRes));
+                A.add(new ShutdownRecord(ShutdownRecord.FAIL_IN_PREPARE));
+                
+                A.commit();</programlisting>
+            
+        </section>
+        
+        <section>
+            <title>Nested transactions</title>
+            
+            <para>There are no special constructs for nesting of transactions: if an action is begun while another action is running then it is automatically nested. This allows for a modular structure to applications, whereby objects can be implemented using atomic actions within their operations without the application programmer having to worry about the applications which use them, i.e., whether or not the applications will use atomic actions as well. Thus, in some applications actions may be top-level, whereas in others they may be nested. Objects written in this way can then be shared between application programmers, and <emphasis>TxCore</emphasis> will guarantee their consistency.</para>
+            
+            <para>If a nested action is aborted then all of its work will be undone, although strict two-phase locking means that any locks it may have obtained will be retained until the top-level action commits or aborts. If a nested action 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.</para>
+            
+            <para>The committing or aborting of a nested action does not automatically affect 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.</para>
+        </section>
+        
+        <section>
+            <title>Asynchronously committing a transaction</title>
+            
+            <para>By default, JBossTS executes the commit protocol of a top-level transaction 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:</para>
+            
+            <itemizedlist>
+                <listitem><para>In the case of many registered resources, the prepare operating can logically be invoked in parallel on each resource. The disadvantage is that if an “early” resource in the list of registered resource forces a rollback during prepare, possibly many prepare operations will have been made needlessly.</para></listitem>
+                <listitem><para>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.</para></listitem>
+            </itemizedlist>
+            
+            <para>Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable possible threading optimizations. By setting the  <literal>com.arjuna.ats.arjuna.coordinator.asyncPrepare</literal> environment variable to <literal>YES</literal>, during the prepare phase a separate thread will be created for each registered participant within the transaction. By setting <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to <literal>YES</literal>, a separate thread will be created to complete the second phase of the transaction if knowledge about heuristics outcomes is not required.</para>
+            
+            
+        </section>
+        
+        <section>
+            <title>Independent top-level transactions</title>
+            
+            <para>In addition to normal top-level and nested atomic actions <emphasis>TxCore</emphasis> also supports independent top-level actions, which can be used to relax strict serialisability in a controlled manner. An independent top-level action can be executed from anywhere within another atomic action and behaves exactly like a normal top-level action, that is, its results are made permanent when it commits and will not be undone if any of the actions within which it was originally nested abort.</para>
+            
+            <mediaobject id="figure_5">
+                <imageobject>
+                    <imagedata align="center" fileref="images/Independent_Top-Level.png" />
+                </imageobject>
+                <caption> Independent Top-Level Action</caption>
+            </mediaobject>
+            
+            <para><xref linkend="figure_5"/> shows a typical nesting of atomic actions, where action B is nested within action A. Although atomic action C is logically nested within action B (it had its Begin operation invoked while B was active) because it is an independent top-level action, it will commit or abort independently of the 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.</para>
+            
+            <para>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.</para>
+           
+        </section>
+        
+        <section>
+            <title>Transactions within save_state and restore_state</title>
+            
+            <para>Caution must be exercised when writing the <command>save_state</command> and <command>restore_state</command> operations to ensure that no atomic actions are started (either explicitly in the operation or implicitly through use of some other operation). This restriction arises due to the fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as part of its commit processing resulting in the attempt to execute an atomic action during the commit or abort phase of another action. This might violate the atomicity properties of the action being committed (aborted) and is thus discouraged.</para>
+            
+        </section>
+        
+        <section>
+            <title>Example</title>
+            
+            <para>If we consider the Array example given previously, the set and get operations could be implemented as shown below.</para>
+            
+            <note><para>This is a simplification of the code, ignoring error conditions and exceptions.</para></note>
+            
+            <programlisting>public boolean set (int index, int value)
+{
+    boolean result = false;
+    AtomicAction A = new AtomicAction();
+
+    A.begin();
+
+    // We need to set a WRITE lock as we want to modify the state.
+
+    if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+    {
+        elements[index] = value;
+        if ((value &gt; 0) &amp;&amp;(index &gt; highestIndex))
+            highestIndex = index;
+        A.commit(true);
+        result = true;
+    }
+    else
+        A.rollback();
+
+    return result;
+}
+
+public int get (int index)  // assume -1 means error
+{
+    AtomicAction A = new AtomicAction();
+
+    A.begin();
+
+    // We only need a READ lock as the state is unchanged.
+
+    if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+    {
+        A.commit(true);
+
+        return elements[index];
+    }
+    else
+        A.rollback();
+
+    return -1;
+}</programlisting>
+            
+        </section>
+        
+        <section>
+            <title>Garbage collecting objects</title>
+            
+            <para>Java objects are deleted when the garbage collector determines that they are no longer required. Deleting an object that is currently under the control of a transaction must be approached with caution since if the object is being manipulated within a transaction its fate is effectively determined by the transaction. Therefore, regardless of the references to a transactional 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.</para>
+            
+        </section>
+        
+        <section>
+            <title>Transaction timeouts</title>
+            
+            <para>By default transactions live until they are terminated by the application that created them or a failure occurs. However, it is possible to set a 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.</para>
+            
+            <para>In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter to the <classname>AtomicAction</classname> constructor. If a value of <literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then the transaction will not be automatically timed out. Any other positive value is assumed to the timeout for the transaction (in seconds). A value of zero is taken to be a global default timeout, which can be provided by the property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal>. Unless changed the default value is 60 seconds.</para>
+            
+            <para>When a top-level transaction is created with a non-zero timeout, it is subject to being rolled back if it has not completed within the specified number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper thread which monitors all locally created transactions, and forces them to roll back if their timeouts elapse. To prevent this thread from consuming application time, it only runs periodically. The default checking period is 120000 milliseconds, but can be overridden by setting the  <literal>com.arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to another valid value, in microseconds. Alternatively, if the <literal>com.arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to <literal>DYNAMIC</literal>, the transaction reaper will wake whenever a transaction times out. This has the advantage of terminating transactions early, but may suffer from continually rescheduling the reaper thread.</para>
+            
+            <para>If a value of 0 is specified for the timeout of a top-level transaction (or no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose any timeout on the transaction, i.e., it will be allowed to run indefinitely. This default timeout can be overridden by setting the <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using <emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds.</para>
+            
+            
+        </section>
+        
+        
+    </section>
+    
+    
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_03.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_04.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_04.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_04.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,92 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Hints and tips</title>
+    
+    <section>
+        <title>General</title>
+        
+        <section>
+            <title>Using transactions in constructors</title>
+            
+            <para>Examples throughout this manual have used transactions in the implementation of constructors for new persistent objects. This is deliberate because it guarantees correct propagation of the state of the object to the object store. Recall that the state of a modified persistent object is only written to the object store when the top-level transaction commits. Thus, if the constructor transaction is top-level and it commits, then the newly created object is written to the store and becomes available immediately. If 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. </para>
+            
+            <para>On the other hand, if the constructor does not use transactions then it is possible for inconsistencies in the system to arise. For example, if no 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.</para>
+            
+            <para>Consider this simple example:</para>
+            
+            <programlisting>AtomicAction A = new AtomicAction();
+Object obj1;
+Object obj2;
+
+obj1 = new Object();			// create new object
+obj2 = new Object("old");		// existing object
+
+A.begin(0);
+obj2.remember(obj1.get_uid());	// obj2 now contains reference to obj1
+A.commit(true);				// obj2 saved but obj1 is not</programlisting>
+            
+            <para>Here the two objects are created outside of the control of the top-level action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> an old existing object. When the remember operation of <literal>obj2</literal> is invoked the object will be activated and the Uid of <literal>obj1</literal> remembered. Since this action commits the persistent state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</literal>. However, the state of <literal>obj1</literal> itself has not been saved since it has not been manipulated under the control of any action. In fact, unless it is modified under the control of some action later in the application it will never be saved. If, however, the constructor had used an atomic action the state of <literal>obj1</literal> would have automatically been saved at the time it was constructed and this inconsistency could not arise.</para>
+        </section>
+        
+        <section>
+            <title>More on save_state and restore_state</title>
+            
+            <para><emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</command> operation of an object effectively at any time during the lifetime of an object including during the execution of the body of the object’s constructor (particularly if it uses atomic actions). It is important, therefore, that all of the variables saved by save_state are correctly initialised.</para>
+            
+            <para>Caution must be also exercised when writing the <command>save_state</command> and <command>restore_state</command> operations to ensure that no transactions are started (either explicitly in the operation or implicitly through use of some other operation). This restriction arises due to the fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as part of its commit processing resulting in the attempt to execute an atomic transaction during the commit or abort phase of another transaction. This might violate the atomicity properties of the transaction being committed (aborted) and is thus discouraged.</para>
+            
+            <para>In order to support crash recovery for persistent objects it is necessary for all <literal>save_state</literal> and <literal>restore_state</literal> methods of user objects to call <command>super.save_state</command> and <command>super.restore_state</command>.</para>
+            
+        </section>
+        
+        <section>
+            <title>Packing Objects</title>
+            
+            <para>All of the basic types of Java (int, long, etc.) can be saved and restored from an <classname>Input/OutputObjectState</classname> instance by using the pack (and unpack) routines provided by <classname>Input/OutputObjectState</classname>. However packing and unpacking objects should be handled 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:</para>
+            
+            <programlisting>public class Test
+{
+    public Test (String s);
+    ...
+    private String s1;
+    private String s2;
+};
+
+public Test (String s)
+{
+    s1 = s;
+    s2 = s;
+}</programlisting>
+            
+            <para>Here, both s1 and s2 point at the same string and a naive implementation of <command>save_state</command> could end up by copying the string twice. From a <command>save_state</command> perspective this is simply inefficient. However, it makes <command>restore_state</command> incorrect since it would 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.</para>
+         
+         </section>
+    </section>
+    
+    <section>
+        <title>Direct use of StateManager</title>
+        
+        <para>The examples throughout this manual have always derived user classes from <classname>LockManager</classname>. The reasons for this are twofold. Firstly, and most importantly, the serialisability constraints of atomic actions require it, and secondly it reduces the need for programmer 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.</para>
+        
+        <para>Classes derived directly from <classname>StateManager</classname> must make use of its state management mechanisms explicitly (these interactions are normally undertaken by <classname>LockManager</classname>). From a programmer's point of view this amounts to making appropriate use of the operations activate, deactivate and modified, since <classname>StateManager</classname>'s constructors are effectively identical to those of <classname>LockManager</classname>.</para>
+        
+        <programlisting>boolean activate ()
+boolean activate (String storeRoot)</programlisting>
+        
+        <para><command>Activate</command> loads an object from the object store. The object’s UID must already have been set via the constructor and the object must exist in the store. If the object is successfully read then <command>restore_state</command> is called to build the object in memory. <command>Activate</command> is idempotent so that once an object has been activated further calls are ignored. The parameter represents the root name of the object store to search for the object. A value of null means use the default store.</para>
+        
+        <programlisting>boolean deactivate ()
+boolean deactivate (String storeRoot)</programlisting>
+        
+        <para>The inverse of activate. First calls <command>save_state</command> to build the compacted image of the object which is then saved in the object store. 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.</para>
+        
+        <programlisting>void modified ()</programlisting>
+        
+        <para><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.</para>
+    </section>
+    
+    
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_04.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_05.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_05.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_05.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,514 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Tools</title>
+    
+    <section>
+        <title>Introduction</title>
+    
+        <para>This chapter explains how to start and use the tools framework and what tools are available.</para>
+    
+    </section>
+    
+    <section>
+        <title>Starting the Transaction Service tools</title>
+        
+        <para>The way to start the transaction service tools differs on the operating system being used:</para>
+        
+        <formalpara>
+            <title>Windows</title>
+            
+            <para>Double click on the ‘Start Tools’ link in the JBoss Transaction Service program group in the start menu.</para>
+        </formalpara>
+        
+        <formalpara>
+            <title>Unix</title>
+            
+            <para>
+                Start a bash shell and type:
+                </para>
+        </formalpara>
+        
+        <programlisting>cd &lt;JBossTS INSTALL DIRECTORY&gt;
+./run-tools.sh</programlisting>
+    
+        <para>Once you have done this the tools window will appear. This is the launch area for all of the tools shipped with the <emphasis>JBoss Transaction Service</emphasis>.  At the top of the window you will notice a menu bar. This menu bar has four items:</para>
+        
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Menu.png" format="PNG"/>
+		</imageobject>
+		<caption>Menu bar</caption>
+	</mediaobject>
+	
+        <formalpara>
+            <title>The <menuchoice><guimenu>File</guimenu></menuchoice> Menu</title>
+	    <para>&nbsp;
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/File_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Open JMX Browser</term>
+                        <listitem><para>This displays the JMX browser window (see ***Using the JMX Browser for more information on how to use the JMX browser).</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Open Object Store Browser </term>
+                        <listitem><para>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).</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Settings</term>
+                        <listitem><para>This option opens the settings dialog which lets you configure the different tools available.</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry><term>Exit</term>
+                        <listitem><para>This closes the tools window and exits the application, any unsaved/unconfirmed changes will be lost.</para></listitem></varlistentry>
+                    
+                    
+                </variablelist>
+                
+            </para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu</title>
+	    <para>&nbsp; 
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Performance_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para>
+                <variablelist>
+                    <varlistentry>
+                        <term>Open</term>
+                        <listitem><para>This opens a performance window – see <xref linkend="Performance_Tool"/> for more information on the performance tool.</para></listitem>
+                    </varlistentry>
+                    
+                    <varlistentry>
+                        <term>Close All</term>
+                        <listitem><para>this closes all of the currently open performance windows – see <xref linkend="Performance_Tool"/> for more information on the performance tool.</para></listitem>
+                    </varlistentry>
+                    
+                </variablelist>
+                
+            </para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu</title>
+	    <para> &nbsp;
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Window_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para><variablelist>
+                <varlistentry>
+                    <term>Cascade Windows</term>
+                    <listitem><para>This arranges the windows in a diagonal line to you find a specific window.</para></listitem>
+                </varlistentry>
+                
+                <varlistentry>
+                    <term>1. XXXXXXX</term>
+                    <listitem><para>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.</para></listitem>
+                </varlistentry>
+                
+            </variablelist>
+            </para>
+        
+        <formalpara>
+            <title>The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu</title>
+	    <para>&nbsp;
+	    </para>
+   	 </formalpara>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Help_Menu.png" format="PNG"/>
+		    </imageobject>
+	    </mediaobject>
+            <para><variablelist>
+                <varlistentry>
+                    <term>About</term>
+                    <listitem><para>This displays the about window containing the product information.</para></listitem>
+                </varlistentry>
+            </variablelist>
+            </para>
+        
+        
+        
+    </section>
+    
+    <section id="Performance_Tool">
+        <title>Using the Performance Tool</title>
+        
+        <para>The performance tool can be used to display performance information about 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.</para>
+        
+        <para>The performance information is displayed via a multi-series graph.  To view this graph simply open a performance window by selecting <menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; <menuchoice><guimenuitem>Open</guimenuitem></menuchoice></para>
+	
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Performance_Window.png" format="PNG"/>
+		</imageobject>
+	    </mediaobject>
+	
+	<para>
+		The window now on screen contains a multi-serise graph which can display the following information:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Number of transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of committed transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of aborted transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of nested transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Number of heuristics raised.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		To turn these series on and off simply select the menu option from the series menu. 
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Series_Menu.png" format="PNG"/>
+		</imageobject>
+	    </mediaobject>
+	<para>
+		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.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Series_Colour.png" format="PNG"/>
+		</imageobject>
+	    </mediaobject>
+	<para>
+		The data shown is graphed against time. The Y-axis represents the number of transactions and the X-axis represents time.
+	</para>
+	<para>
+		At any point the sampling of data can be stopped and restarted using the <menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data currently visible in the graph can be saved to a Comma Separate Values  (CSV) 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.
+	</para>
+    </section>
+    <section id="JMX_Browser">
+    	<title>Using the JMX Browser</title>
+	<para>
+		To open the JMX browser window click on the <menuchoice><guimenu>File</guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX Browser</guimenu></menuchoice> option.  The JMX browser window will then be displayed.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/JMX_Browser.png" format="PNG"/>
+		</imageobject>
+	</mediaobject>
+	<para>
+		The window is made up of two main sections:the details panel and the MBean panel. The MBean panel displays the MBeans exposed by the MBean server. These are grouped by domain name.  The details panel displays information 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:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				The total number of MBeans registered on this server.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of constructors exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of attributes exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of operations exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The number of notifications exposed by this MBean.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A brief description of the MBean.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which when clicked displays the attributes and operations exposed by this MBean.  From there you can view readable attributes, alter writeable attributes and invoke operations.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Details_Panel.png" format="PNG"/>
+		</imageobject>
+		<caption>An example of what the details panel displays</caption>
+	</mediaobject>
+	<section id="Using_Attributes_and_Operations">
+		<title>Using Attributes and Operations</title>
+		<para>
+			When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked the View JMX Attributes and Operations window is displayed.  From here you can view all readable attributes exposed by the selected MBean.  You can also alter writeable attributes.  If an attribute is read-only then you will not be able to alter an attributes value.  To alter an attributes value just double click on the current value and enter the new value.  If the <guibutton>...</guibutton> button is enabled then you can click this to view 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.
+		</para>
+		<para>
+			At any point you can click the <guibutton>Refresh</guibutton> button to 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.
+		</para>
+		<para>
+			You can also invoke operations upon an MBean.  A list of operations exposed by an MBean is displayed below the attributes list.  To invoke an operation simply select it from the list and click the <guibutton>Invoke</guibutton> button.  If the operation requires parameters a further window will be displayed, from this window you must specify values for each of the parameters required.  You specify parameter values in the same way as you 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.
+		</para>
+		<para>
+			Once the method invocation has completed its return value will be displayed.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/JMX_Attributes_Operations.png" format="PNG"/>
+			</imageobject>
+			<caption>View JMX Attributes and Operations window</caption>
+	    </mediaobject>
+	    <mediaobject>
+		    <imageobject>
+			    <imagedata fileref="images/Invoke_Operation_Parameters.png" format="PNG"/>
+		    </imageobject>
+		    <caption>Invoke Operation Parameters</caption>
+	    </mediaobject>
+	</section>
+	<section id="Using_the_Object_Store_Browser">
+		<title>Using the Object Store Browser</title>
+		<para>
+			To open the Object Store browser window click on the <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.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Object_Store.png" format="PNG"/>
+			</imageobject>
+	    </mediaobject>
+		<para>
+			The object store browser window is split into four sections:
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Object_Store_Split.png" format="PNG"/>
+			</imageobject>
+	    </mediaobject>
+		<itemizedlist>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Objects – this is a list of icons which represent the objects stored in the selected location.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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).
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	<section id="Object_State_Viewers">
+		<title>Object State Viewers (OSV)</title>
+		<para>
+			When an object is selected in the objects pane of the main window the registered Object State Viewer (or OSV) for that object type is invoked. An OSV’s job is to make information available via the user interface to the user to show information about the selected object. Distributed with the standard tools is an OSV for Atomic Actions, the OSV displays information on the Abstract Records in it’s various lists (e.g. heuristic, failed, read-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.
+		</para>
+		<formalpara>
+			<title>Writing an OSV</title>
+			<para>
+				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:
+			</para>
+		</formalpara>
+		<para>
+		 <code>com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface</code>
+	 	</para>	
+		<para>
+			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:
+		</para>
+<screen>
+public class SimpleRecord extends AbstractRecord
+{
+	private int _value = 0;
+	
+	.....
+	
+	public void increase()
+	{
+		_value++;
+	}
+	
+	public int get()
+	{
+		return _value;
+	}
+	
+	public String type()
+	{
+		return “/StateManager/AbstractRecord/SimpleRecord”;
+	}
+	
+	public boolean restore_state(InputObjectState os, int i)
+	{
+		boolean returnValue = true;
+	
+		try
+		{
+			_value = os.unpackInt();
+		}
+		catch (java.io.IOException e)
+		{
+			returnValue = false;
+		}
+	
+		return returnValue;
+	}
+	
+	public boolean save_state(OutputObjectState os, int i)
+	{
+		boolean returnValue = true;
+	
+		try
+		{
+			os.packInt(_value);
+		}
+		catch (java.io.IOException e)
+		{
+			returnValue = false;
+		}
+	
+		return returnValue;
+	}
+}
+</screen>
+		<para>
+			When this abstract record is viewed in the object store browser it would be nice to see the current value. This is easy to do as we can read the state into an instance of our abstract record and call <methodname>getValue()</methodname>. The following is the object store browser plug-in source code:
+		</para>
+<screen>
+public class SimpleRecordOSVPlugin implements StateViewerInterface
+{
+	/**
+	* A uid node of the type this viewer is registered against has been expanded.
+	* @param os
+	* @param type
+	* @param manipulator
+	* @param node
+	* @throws ObjectStoreException
+	*/
+	public void uidNodeExpanded(ObjectStore os,
+	String type,
+	ObjectStoreBrowserTreeManipulationInterface 
+	manipulator,
+	UidNode node,
+	StatePanel infoPanel)
+	throws ObjectStoreException
+	{
+		// Do nothing
+	}
+	
+	/**
+	* An entry has been selected of the type this viewer is registered against.
+	*
+	* @param os
+	* @param type
+	* @param uid
+	* @param entry
+	* @param statePanel
+	* @throws ObjectStoreException
+	*/
+	public void entrySelected(ObjectStore os,
+	String type,
+	Uid uid,
+	ObjectStoreViewEntry entry,
+	StatePanel statePanel) 
+	throws ObjectStoreException
+	{
+		SimpleRecord rec = new SimpleRecord();
+	
+		if ( rec.restore_state( os.read_committed(uid, type), ObjectType.ANDPERSISTENT ) )
+		{
+			statePanel.setData( “Value”, rec.getValue() );
+		}
+	}
+	
+	/**
+	* Get the type this state viewer is intended to be registered against.
+	* @return
+	*/
+	public String getType()
+	{
+		return “/StateManager/AbstractRecord/SimpleRecord”;
+	}
+}
+</screen>
+		<para>
+			The method <methodname>uidNodeExpanded</methodname> is invoked when a UID (Unique Identification) representing the given type is expanded in the object store hierarchy tree. This is not required by this plugin as this abstract record is not visible in the object store directly it is only viewable via one of the lists in an atomic action.  The method <methodname>entrySelected</methodname> is invoked when an entry is selected from the object view which represents an object with the given type. In both 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:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>setInfo(String info)</methodname>: This method can be used to show general information.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>enableDetailsButton(DetailsButtonListener listener)</methodname>: This method is used to enable the details button.  The listener interface allows a plug-in to be informed when the button is pressed.  It is up to the plug-in developer to decide how to display this further information.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			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.
+		</para>
+		<para>
+			To add this plug-in to the object store browser it is necessary to package it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. The JAR file must contain certain information within the manifest file so that the object store browser knows which classes are plug-ins.  All of this can be performed using an <ulink url="http://ant.apache.org">Apache ANT</ulink> script, as follows:
+		</para>
+<screen>
+&lt;jar jarfile="osbv-simplerecord.jar"&gt;
+	&lt;fileset dir="build" includes="*.class”/&gt;
+	&lt;manifest&gt;
+		&lt;section name="arjuna-tools-objectstorebrowser"&gt;
+			&lt;attribute name="plugin-classname-1" value=" SimpleRecordOSVPlugin "/&gt;
+		&lt;/section&gt;
+	&lt;/manifest&gt;
+&lt;/jar&gt;
+</screen>
+		<para>
+			Once the JAR has been created with the correct information in the manifest file it just needs to be placed in the <emphasis>bin/tools/plugins</emphasis> directory.
+		</para>
+	</section>
+    </section>
+</chapter>


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_05.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_06.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_06.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_06.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,379 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Constructing a Transactional objects for Java application</title>
+    
+    <section>
+        <title>Application construction</title>
+		<para>
+			There are two distinct phases to the development of a TxCore application:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Developing new classes with certain characteristics (for example, Persistent, Recoverable, Concurrency Controlled).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Developing the application(s) that make use of the new classes of objects.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Although these two phases may be performed in parallel and by a single person, we shall refer to the first step as the job of the class developer and the second as the job of the applications developer. The class developer will be concerned about defining appropriate <code>save_state</code> and <code>restore_state</code> operations for the class, setting appropriate locks in operations, and invoking the appropriate TxCore class constructors. The applications developer will be more concerned with defining the general structure of the application, particularly with regard to the use of atomic actions.
+		</para>
+		<para>
+			This chapter illustrates the points made in previous sections by outlining a simple application: in this case a simple FIFO Queue class for integer values will be developed. The implementation of the Queue will be with a doubly linked list structure, and it will be implemented as a single object. We shall be using this example throughout the rest of this manual to help 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.
+		</para>
+		<para>
+			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.
+		</para>
+		<formalpara>
+			<title>Queue description</title>
+			<para>
+				The queue is a traditional FIFO queue, where elements are added to the front and removed from the back. The operations provided by the queue class allow the values to be placed on to the queue (enqueue) and to be removed from it (dequeue), and it is also possible to change or inspect the values of 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.
+			</para>
+		</formalpara>
+			<para>
+				The Java interface definition of this simple queue class is given below:
+			</para>
+<screen>
+public class TransactionalQueue extends LockManager
+{
+	public TransactionalQueue (Uid uid);
+	public TransactionalQueue ();
+	public void finalize ();
+	
+	public void enqueue (int v) throws OverFlow, UnderFlow,
+	QueueError, Conflict;
+	public int dequeue  () throws OverFlow, UnderFlow,
+	QueueError, Conflict;
+	
+	public int queueSize ();
+	public int inspectValue (int i) throws OverFlow,
+	UnderFlow, QueueError, Conflict;
+	public void setValue (int i, int v) throws OverFlow,
+	UnderFlow, QueueError, Conflict;
+	
+	public boolean save_state (OutputObjectState os, int ObjectType);
+	public boolean restore_state (InputObjectState os, int ObjectType);
+	public String type ();
+	
+	public static final int QUEUE_SIZE = 40; // maximum size of the queue
+	
+	private int[QUEUE_SIZE] elements;
+	private int numberOfElements;
+};			
+</screen>
+		<formalpara>
+			<title>Constructors and deconstructors</title>
+			<para>
+				As stated in the previous section, to use an existing persistent object 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:
+			</para>
+		</formalpara>
+<screen>
+public TransactionalQueue (Uid u)
+{
+	super(u);
+	
+	numberOfElements = 0;
+}		
+</screen>
+			<para>
+				The constructor that creates a new persistent object is similar:
+			</para>
+<screen>
+public TransactionalQueue ()
+{
+	super(ObjectType.ANDPERSISTENT);
+	
+	numberOfElements = 0;
+	
+	try
+	{
+		AtomicAction A = new AtomicAction();
+	
+		A.begin(0);	// Try to start atomic action
+	
+		// Try to set lock
+	
+			if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+			{
+				A.commit(true);	// Commit
+			}
+			else 	// Lock refused so abort the atomic action
+				A.rollback();
+			}
+	catch (Exception e)
+	{
+		System.err.println(“Object construction error: “+e);
+		System.exit(1);
+	}
+}			
+</screen>
+			<para>
+				The use of an atomic action within the constructor for a new object follows the guidelines outlined earlier and ensures that the object’s state will be written to the object store when the appropriate top level atomic action commits (which will either be the action A or some enclosing action active when the <code>TransactionalQueue</code> was constructed). The use of atomic actions in a constructor is simple: an action must first be declared and its begin operation invoked; the operation must then set an appropriate lock on 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.
+			</para>
+			<para>
+				The destructor of the queue class is only required to call the terminate operation of <methodname>LockManager</methodname>
+			</para>
+<screen>
+public void finalize ()
+{
+	super.terminate();
+}
+</screen>
+		<formalpara>
+			<title>save_state, resotre_state and type</title>
+			<para>
+				The implementations of save_state and restore_state are relatively simple for this example:
+			</para>
+		</formalpara>
+<screen>
+public boolean save_state (OutputObjectState os, int ObjectType)
+{
+	if (!super.save_state(os, ObjectType))
+	return false;
+	
+	try
+	{
+		os.packInt(numberOfElements);
+	
+		if (numberOfElements &gt; 0)
+		{
+			for (int i = 0; i &lt; numberOfElements; i++)
+			    os.packInt(elements[i]);
+		}
+			    
+		return true;
+	}
+	catch (IOException e)
+	{
+		return false;
+	}
+}
+
+public boolean restore_state (InputObjectState os, int ObjectType)
+{
+	if (!super.restore_state(os, ObjectType))
+		return false;
+		    
+	try
+	{
+		numberOfElements = os.unpackInt();
+		    
+		if (numberOfElements &gt; 0)
+		{
+			for (int i = 0; i &lt; numberOfElements; i++)
+				    elements[i] = os.unpackInt();
+		}
+		    
+		return true;
+	}
+	catch (IOException e)
+	{
+		return false;
+	}
+}			
+</screen>
+		<para>
+			Because the Queue class is derived from the <classname>LockManager</classname> class, the operation type should be:
+		</para>
+<screen>
+public String type ()
+{
+	return "/StateManager/LockManager/TransactionalQueue";
+}
+</screen>
+		<formalpara>
+			<title>enqueue/dequeue operations</title>
+				<para>
+					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):
+				</para>
+		</formalpara>
+<screen>
+public void enqueue (int v) throws OverFlow, UnderFlow, QueueError
+{
+	AtomicAction A = new AtomicAction();
+	boolean res = false;
+	
+	try
+	{
+		A.begin(0);
+	
+		if (setlock(new Lock(LockMode.WRITE), 0) == LockResult.GRANTED)
+		{
+			if (numberOfElements &lt; QUEUE_SIZE)
+			       {
+			       		elements[numberOfElements] = v;
+			       		numberOfElements++;
+			       		res = true;
+			       }
+			       else
+			       {
+			       		A.rollback();
+			      		throw new UnderFlow();
+			       }
+		}
+			       
+		if (res)
+			 A.commit(true);
+		else
+		{
+			 A.rollback();
+			       		throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+}
+</screen>
+		<formalpara>
+			<title>queueSize</title>
+			<para>The implementation of <methodname>queueSize</methodname> is shown below:</para>
+		</formalpara>
+<screen>
+public int queueSize () throws QueueError, Conflict
+{
+	AtomicAction A = new AtomicAction();
+	int size = -1;
+	
+	try
+	{
+		A.begin(0);
+	
+		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+			size = numberOfElements;
+	
+		if (size != -1)
+			A.commit(true);
+		else
+		{
+			A.rollback();
+	
+			throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+	
+	return size;
+}
+</screen>
+		<formalpara>
+			<title>inspectValue/setValue operations</title>
+				<para>
+					The implementation of <methodname>inspectValue</methodname> is shown below. <methodname>setValue</methodname> is similar, and not shown.
+				</para>
+		</formalpara>
+<screen>
+public int inspectValue (int index) throws UnderFlow,
+	OverFlow, Conflict, QueueError
+{
+	AtomicAction A = new AtomicAction();
+	boolean res = false;
+	int val = -1;
+	
+	try
+	{
+		A.begin();
+	
+		if (setlock(new Lock(LockMode.READ), 0) == LockResult.GRANTED)
+		{
+			if (index &lt; 0)
+		   	 {
+		   		 A.rollback();
+		    		throw new UnderFlow();
+		    	}
+		else
+		{
+		    // array is 0 - numberOfElements -1
+		    
+		    if (index &gt; numberOfElements -1)
+		{
+			A.rollback();
+			throw new OverFlow();
+		}
+		else
+		{
+			val = elements[index];
+			res = true;
+		}
+		}
+		}
+		
+		if (res)
+			A.commit(true);
+		else
+		{
+			A.rollback();
+			throw new Conflict();
+		}
+	}
+	catch (Exception e1)
+	{
+		throw new QueueError();
+	}
+		
+	return val;
+}
+</screen>
+		<formalpara>
+			<title>The client</title>
+				<para>
+					Rather than show all of the code for the client, we shall concentrate on a 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.
+				</para>
+		</formalpara>
+<screen>
+public static void main (String[] args)
+{
+TransactionalQueue myQueue = new TransactionalQueue();
+</screen>
+				<para>
+					Before invoking one of the queue’s operations, the client starts a transaction. The <methodname>queueSize</methodname> operation is shown below:
+				</para>
+<screen>
+AtomicAction A = new AtomicAction();
+int size = 0;
+	
+try
+{
+	A.begin(0);
+s
+	try
+	{
+		size = queue.queueSize();
+	}
+	catch (Exception e)
+	{
+	}
+	
+	if (size &gt;= 0)
+	{
+		A.commit(true);
+	
+		System.out.println(“Size of queue: “+size);
+	}
+	else
+		A.rollback();
+}
+catch (Exception e)
+{
+	System.err.println(“Caught unexpected exception!”);
+}
+</screen>
+		<formalpara>
+			<title>Comments</title>
+				<para>
+					Since the queue object is persistent, then the state of the object will survive any failures of the node on which it is located. The state of the object that will survive is that produced by the last top-level committed atomic action performed on the object. If it is the intention of an application to perform two enqueue operations atomically, for example, then this can be done by nesting the enqueue operations in another enclosing atomic action. In addition, concurrent operations on such a persistent object will be serialised, thereby preventing inconsistencies in the state of the object. However, since the elements of the queue objects are not individually concurrency controlled, certain combinations of concurrent operation invocations will be executed serially, whereas logically they 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.
+				</para>
+		</formalpara>
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_06.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,235 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter>
+    <title>Configuration options</title>
+    
+    <section>
+        <title>Options</title>
+		<para>
+			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.
+		</para>
+		<table>
+			<title>TxCore configuration options.</title>
+			<tgroup cols="3">
+				<thead>
+					<row>
+						<entry>
+							Configuration Name
+						</entry>
+						<entry>
+							Possible Values
+						</entry>
+						<entry>
+							Description
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.storeSync
+						</entry>
+						<entry>
+							ON/OFF
+						</entry>
+						<entry>
+							Turns synchronization of the object store on or off. Use with caution.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.storeType
+						</entry>
+						<entry>
+							ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore
+						</entry>
+						<entry>
+							Specify the type of object store implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.hashedDirectories
+						</entry>
+						<entry>
+							255/any integer value
+						</entry>
+						<entry>
+							Set the number of directories to hash object states over for the HashedStore object store implementation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.txoj.lockstore.lockStoreType
+						</entry>
+						<entry>
+							BasicLockStore/BasicPersistentLockStore
+						</entry>
+						<entry>
+							Specify the type of the lock store implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.txoj.lockstore.lockStoreDir
+						</entry>
+						<entry>
+							Windows: .\LockStore
+							Unix: ./LockStore
+						</entry>
+						<entry>
+							Specify the location of the lock store.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.objectStoreDir
+						</entry>
+						<entry>
+							Any location the application can write to.
+						</entry>
+						<entry>
+							Specify the location of the object store.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.localOSRoot
+						</entry>
+						<entry>
+							defaultStore
+						</entry>
+						<entry>
+							Specify the name of the object store root.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.actionStore
+						</entry>
+						<entry>
+							ActionStore/HashedActionStore/JDBCActionStore
+						</entry>
+						<entry>
+							The transaction log implementation to use.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.asyncCommit
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Turns on or off (default) asynchronous commit.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.asyncPrepare
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Turns on or off (default) asynchronous prepare.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.transactionSync
+						</entry>
+						<entry>
+							ON/OFF
+						</entry>
+						<entry>
+							Turns synchronization of the object store on or off. Use with caution.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess
+						</entry>
+						<entry>
+							JDBCAccess class name
+						</entry>
+						<entry>
+							The JDBCAccess implementation to use for user-level object stores.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess
+						</entry>
+						<entry>
+							JDBCAccess class name
+						</entry>
+						<entry>
+							The JDBCAccess implementation to use for transaction object stores.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.commitOnePhase
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Enable or disable the one-phase commit optimization.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.readonlyOptimisation
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Enable or disable read-only optimization for the second phase abort.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.enableStatistics
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Start/stop collecting transaction statistic information.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.startDisabled
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+							Start with the transaction system enabled or disabled. Toggle via the com.arjuna.ats.arjuna.coordinator.TxControl class.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.arjuna.coordinator.defaultTimeout
+						</entry>
+						<entry>
+							Integer
+						</entry>
+						<entry>
+							Timeout in milliseconds
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+			
+
+		</table>
+    </section>
+</chapter>
\ No newline at end of file


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Chapter_07.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3 @@
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,21 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+	<xi:include href="Chapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_02.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_03.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_04.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_05.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Chapter_06.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 
+	<xi:include href="Chapter_07.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Appendix_A.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Appendix_B.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!--	<xi:include href="Appendix.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/JBoss_Transactions_Programmers_Guide_CP03.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Details_Panel.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Details_Panel.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/File_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/File_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Help_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Help_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Independent_Top-Level.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Independent_Top-Level.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Invoke_Operation_Parameters.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Invoke_Operation_Parameters.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/JMX_Attributes_Operations.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/JMX_Attributes_Operations.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/JMX_Browser.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/JMX_Browser.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Multiple_Object.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Multiple_Object.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Object_Store.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Object_Store.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Object_Store_Split.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Object_Store_Split.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Performance_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Performance_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Performance_Window.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Performance_Window.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Persistent_Object_Lifecycle.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Persistent_Object_Lifecycle.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Series_Colour.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Series_Colour.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Series_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Series_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Single_Object.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Single_Object.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/TXCore_class_hierarchy.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/TXCore_class_hierarchy.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Window_Menu.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/en-US/images/Window_Menu.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,695 @@
+# translation of Appendix_A.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-07 08:56+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Implementaciones de almacenamiento de objetos "
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "El ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "En este apéndice vamos a examinar las variadas implementaciones del almacenamiento de objetos TxCore y vamos a brindar las directrices de cómo se pueden crear otras implementaciones y conectarlas a una aplicación. "
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Este lanzamiento de JBossTS contiene varias implementaciones diferentes de un almacenamiento básico de objetos. Cada una de ellas sirve un propósito particular y generalmente se optimiza para ese propósito. Todas las implementaciones se derivan de la interfaz <interface>ObjectStore</interface>. Esta define las operaciones mínimas que se deben proveer para que JBossTS utilice una implementación de un almacenamiento de objetos. La implementación predeterminada del almacenamiento de objetos se puede sobreescribir en tiempo de ejecución configurando la variable de la propiedad <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> con uno de los tipos que se describen a continuación. "
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 "Los programadores de JBossTS usualmente no necesitan interactuar directamente con ninguna de las implementaciones del almacenamiento de objetos sólo posiblemente para crearlas en primer lugar (incluso esto no es necesario si el tipo predeterminado del almacenamiento se utiliza mientras JBossTS crea almacenamientos cuando sea necesario). Todos los almacenamientos manipulan instancias de la clase <classname>ObjectState</classname>, las cuales se nombran utilizando un tipo (por medio de la operación de tipo() del objeto) y un Uid. Para los propósitos de las acciones atómicas, los estados de objeto en el almacenamiento se pueden encontrar principalmente en dos estados diferentes: OS_COMMITTED y OS_UNCOMMITTED. El estado de un objeto inicia en el estado OS_COMMITTED pero cuando se modififca bajo el control de una acción atómica puede que se escriba un segundo y nuevo estado del objeto es decir en el estado OS_UNCOMMITTED. Si la acción guarda este segundo objeto re!
 emplaza el original y se convierte en OS_COMMITTED. Si la acción aborta, este segundo estado del objeto simplemente se descarta. Todas las implementaciones que se proporcionan con este lanzamiento manejan estas transiciones de estado utilizando copias sombra de estados de objetos, sin embargo, cualquier otra implementación que mantiene esta abstracción es permisible. Los estados de objetos se pueden convertir en ocultos (y por lo tanto inaccesibles) bajo el control del sistema de recuperación de fallos. "
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"El navegar el contenido de un almacenamiento es posible por medio de las operaciones <methodname>allTypes</methodname> y <methodname>allObjUids</methodname>. <methodname>allTypes</methodname> retorna un "
+"<type>InputObjectState</type> que contiene todos los nombres de tipos de todos los objetos en un almacenamiento, que terminan con un nombre nulo. <methodname>allObjUids</"
+"methodname> retorna un <type>InputObjectState</type> que contiene todos los Uids de todos los objetos de un tipo dado terminado por el <methodname>Uid.nullUid()</methodname> especial."
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "Almacenamientos de objetos persistentes"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "Esta sección describe brevemente las características y optimizaciones para cada una de las implementaciones proporcionadas del almacenamiento de objetos persistentes. Los estados de objetos persistentes se mapean a la estructura del sistema de archivos soportado por el sistema operativo anfitrión. "
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "Funcionalidades comunes"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "Además de las funcionalidades mencionadas anteriormente todos los almacenamientos de objetos persistentes que se proveen siguen las siguientes reglas:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Cada estado de objeto se almacena en su propio archivo que se nombra utilizando el <code>Uid</code> del objeto."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "El tipo de un objeto (tal como es dado por la operación <methodname>type()</methodname>) determina el directorio en el cual se pone el objeto. "
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "Todos los almacenamientos tienen un directorio raíz común que es determinado cuando se configura JBossTS. El nombre del directorio es añadido automáticamente al principio de cualquier información raíz especifica del almacenamiento. "
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Todos los almacenamientos tienen la noción de un directorio raíz localizado que automáticamente se añade al principio al tipo del objeto para determinar el nombre final del directorio. El nombre raíz localizado se especifica cuando se crea el almacenamiento. Por defecto el nombre raíz localizado es <code>defaultStore</code>. "
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "El almacenmiento de sombras"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+"Esta es la versión original del almacenamiento de objetos tal como se proveía en lanzamientos anteriores y es implementada por la clase <classname>ShadowingStore</"
+"classname>. Es simple pero despaciosa. Utilice archivos en parejas para representar objetos (la versión sombra y la versión guardada) y los archivos se abren, se bloquean, se desbloquean y se cierran en cada interacción con el almacenamiento de objetos. Por lo tanto se puede perder bastante tiempo en el sistema con tan sólo abrir, cerrar o renombrar archivos, operaciones que son bastante caras. "
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos entonces el tipo de este almacenamiento es <type>ShadowingStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "No bloqueo a nivel de archivos "
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr "Ya que los objetos transacionales se controlan concurrentemente por medio de <methodname>LockManager</methodname>, no es necesario imponer bloqueo adicional a nivel de archivos, como lo hace la implementación básica de ShadowingStore. Por lo tanto, la implementación predeterminada del almacenamiento de objetos para JBossTS, <methodname>ShadowNoFileLockStore</methodname>, depende del bloqueo a nivel del usuario. Esto lo habilita para proporcionar un mejor rendimiento que la implementación <methodname>ShadowingStore</methodname>. "
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>ShadowNoFileLockStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "El almacenamiento hash"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "El <code>HashedStore</code> tiene la misma estructura para los estados de objetos que los almacenamientos de sombras pero tiene una estructura de directorio alterna que funciona mejor para almacenar grandes números de objetos del mismo tipo. El utilizar este almacenamiento los objetos son dispersos entre un grupo de directorios al aplicar una función hash al Uid del objeto. Por defecto se utilizan 255 sub-directorios. Sin embargo, esto se puede sobreescribir configurando la variable de entorno <code>HASHED_DIRECTORIES</code> adecuadamente."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "Si se sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>HashedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"Ya que los objetos transaccionales son controlados concurrentemente por medio de "
+"<methodname>LockManager</methodname>, no es necesario imponer bloqueo adicional a nivel de archivos, ya que la implementación básica "
+"<methodname>ShadowingStore</methodname> lo hace. Por lo tanto, la implementación predeterminada del almacenamiento de objetos para JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, depende del bloqueo a nivel del usuario. Esto lo habilita para proporcionar mejor rendimiento que la implementación "
+"<methodname>ShadowingStore</methodname>."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "El <methodname>HashedStore</methodname> tiene la misma estructura para los estados de objetos que los almacenamientos sombras pero tiene una estructura de directorio alterna que funciona mejor para almacenar grandes número de objetos del mismo tipo. Al utilizar este almacenamiento los objetos son dispersados a través de un grupo de directorio aplicando una función hash al Uid del objeto. Por defecto se utilizan 255 sub-directorios. Sin embargo, esto se puede sobreescribir configurando la variable de entorno <code>HASHED_DIRECTORIES</code> de acuerdo con esto."
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "El almacenamiento JDBC"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+"El <methodname>JDBCStore</methodname> utiliza una base de datos JDBC para guardar estados de objetos persistentes; cuando se utiliza junto con los objetos transaccionales para transacciones anidadas Java API hay sopporte disponible. En la implementación actual, todos los estados de los objetos se almacenan como objetos binarios grandes (BLOBs del inglés Binary Large Objects) "
+"dentro de la misma tabla. La limitación en el tamaño del estado del objeto se impone utilizando BLOBs de 64k; si se intenta almacenar un estado de objeto que excede este "
+"límite se presentará un error en la salida y el estado no se almacenará. Posteriormente se forzará a que la transacción se deshaga."
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"Al utilizar el almacenamiento de objetos JDBC, la aplicación debe proporcionar una implementación de la siguiente interfaz ubicada en el paquete <code>com.arjuna."
+"ats.arjuna.objectstore</code>:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "La implementación de esta clase es la responsable de proporcionar la <emphasis>Connection</emphasis> que será utilizada por el JDBC ObjectStore para guardar y reestablecer los estados de objetos:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 ""
+"<methodname>getConnection</methodname>: retorna la conexión a utilizar. Este método se llamará cuando se requiera una conexión y la "
+"implementación debe utilizar la política que sea necesaria para determinar que conexión retornar. Este método no necesita retornar la misma instancia de conexión más de una vez."
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: este método se llamará para retornar una de las conexiones adquiridas del getConnection. Las conexiones se retornan si ocurre algún error al utilizarlas."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: este se puede utilizar para pasar información arbitraria adicional a la implementación."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"El almacenamiento de objetos JDBC inicialmente pedirá el número de conexiones definidas en la propiedad <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> y no utilizará más de las que están definidas en la propiedad "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+"La implementation de la interfaz <interfacename>JDBCAccess</interfacename> "
+"a utilizar se debe configurar en la variable de la propiedad <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>."
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>JDBCStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"Se puede utilizar un almacenamiento de objetos JDBC para administrar el registro de transacciones. En este caso, la implementación del registro de transacciones se debe configurar como <property>JDBCActionStore</property> y la implementación <methodname>JDBCAccess</"
+"methodname> se debe propocionar a través de la variable de la propiedad <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>. En este caso, el nombre predeterminado de la tabla es JBossTSTxTable."
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "Es posible utilizar la misma implementación JDBCAccess para el almacenamiento de objetos del usuario y el registro de transacciones. "
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "El almacenamiento en caché"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "Este almacenamiento de objetos utilizó el almacenamiento de objetos con hash pero no lee ni escribe estados en el almacenamiento persistente de copias de seguridad de manera inmediata. Mantiene los estados en un caché de memoria volátil y vacia el caché de manera periódica o cuando está lleno. La semántica de fallos asociada con este almacenamiento de objetos es diferente de los almacenamientos normales de objetos persistentes ya que una falla podría hacer que se pierdan estados que se encuentran en el caché."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "Si sobreescribe la implementación del almacenamiento de objetos, el tipo de este almacenamiento de objetos es <type>CachedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "El almacenamiento se puede configurar con las siguientes propiedades:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> establece el número de almacenamientos internos sobre los cuales realizar hash en los estados. El valor predeterminado es 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> es el tamaño máximo al que puede llegar el caché antes de que el vaciado tenga lugar. Por defecto es 10240 bytes."
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> es el número máximo de objetos removidos que el caché puede contener antes de que se dispare el vaciado. Por defecto, las llamadas para remover un estado que se encuentra en el caché simplemente removerán el estado del caché, pero dejarán una entrada en blanco (en vez de remover la entrada inmediatamente, lo cual afectaría el rendimiento del caché). Cuando se dispara, estas entradas se remueven del caché. El valor predeterminado es dos veces el tamaño del hash."
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> es el número máximo de objetos que se permiten construir en el caché antes de que se vacie. El valor predeterminado es 100."
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> configura el tiempo en milisegundos para vaciar el caché periódicamente. Por defecto es 120 segundos."
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> determina si vaciado del caché se debe sincronizar con el disco. Por defecto es OFF. Para habilitarlo configúrelo como ON."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,502 @@
+# translation of Appendix_B.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-25 13:19+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "Definiciones de clase"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "Este apéndice contiene una sinopsis de esas clases que el programador de aplicaciones utiliza usualmente. El objetivo de este apéndice es brindar un referencia rápida sobre estas clases para utilizarse al escribir aplicaciones en TxCore. Para mayor claridad sólo se darán las interfaces públicas y protegidas de las clases. "
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "Biblioteca de clases "
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Administrador de bloqueos"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,23 @@
+# translation of Author_Group.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-25 13:20+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Grupo de documentación de Red Hat"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,43 @@
+# translation of Book_Info.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-25 13:23+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "Manual para programadores JBoss TS "
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "JBoss Enterprise SOA Platform"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "Este libro es la edición de la plataforma de aplicaciones empresariales del manual para programadores de JBoss TS "
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1030 @@
+# translation of Chapter.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 10:30+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "Sinopsis"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"Este capítulo contiene una descripción del uso de la máquina de transacciones <classname>TxCore</"
+"classname> y las clases y funcionalidades de los <firstterm>objetos transaccionales para "
+"Java</firstterm>. Las clases mencionadas en este capítulo son la clave para escribir aplicaciones tolerantes a fallas utilizando "
+"transacciones. Por lo tanto, después de describirlas las vamos a aplicar en la construcción de una aplicación simple. Las clases que vamos a describir en este capítulo se pueden encontrar en los paquetes <classname>com.arjuna.ats.txoj</classname> y "
+"<classname>com.arjuna.ats.arjuna</classname>."
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – la máquina de transacciones"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+"Con el fin de mantenerse en línea con la perspectiva orientada a objetos, los mecanismos que se necesitan para construir aplicaciones confiables se presentan a los porgramadores de una manera orientada a los objetos. Algunos mecanismos deben ser heredados, por ejemplo, el control de concurrencia y la administración de estado, mientras que otros mecanismos tal como el almacenamiento de objetos y de transacciones se implementan como objetos <classname>TxCore</"
+"classname> que se crean y se manipulan como cualquier otro objeto. "
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"Cuando el manual habla sobre el uso de funcionalidades como el control de concurrencia y de persistencia asume que se están utilizando las clases de <emphasis>Objetos transaccionales para Java</"
+"emphasis> (TXOJ del inglés Transactional Objects for Java). Si este no es el caso entonces el programador es el responsable de todos estos asuntos. "
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 ""
+"<classname>TxCore</classname> explota las técnicas orientadas a objetos para presentarle a los "
+"programadores un grupo de herramientas de clases Java desde donde las clases de la aplicación pueden heredar para obtener las propiedades deseadas tal como persistencia y control de concurrencia. Estas clases forman una jerarquía, parte de la cual se muestra a continuación y que también se describirá más adelante en este documento."
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Jerarquía de clases Txcore "
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+"Aparte de especificar los ámbitos de las transacciones y de configurar los bloqueos apropiados dentro de los objetos, el programador de aplicaciones no tiene ninguna otra responsabilidad: <classname>TxCore</classname> y <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) garantizan que los objetos transaccionales sean registrados y dirigidos por la transacciones apropiadas y que los mecanismos de recuperación de fallos se invoquen de manera automática en el evento de una falla."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Guardar el estado de objetos"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"<classname>TxCore</classname> necesita poder recordar el estado de un objeto debido a varios propósitos, incluyendo la recuperación (el estado representa algun estado pasado del objeto) y la persistencia (el estado representa el estado final "
+"de un objeto al terminar la aplicación). Ya que estos requerimientos tiene funcionalidades comúnes todas se implementan utilizando el mismo mecanismo: las clases <classname>InputObjectState</classname> y "
+"<classname>OutputObjectState</classname>. Las clases mantienen una lista interna en las cuales las instancias de los tipos estándares se pueden empacar contiguamente "
+"(desempacadas) utilizando operaciones <command>pack</command> (<command>unpack</"
+"command>) de manera apropiada. Este buffer se modifica de tamaño automáticamente tal como se necesite en caso de que no tenga suficiente espacio. Las instancias se almacenan en el buffer en una forma estándar (también llamada network byte order) para hacerlas independientes de la máquina. Cualquier otro formato independiente de la arquitectura (tal como XDR "
+"o ASN.1) se puede implementar con simplemente reemplazar las operaciones con las que sean apropiadas para la codificación requerida."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "El almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "Las implementaciones de persistencia pueden ser afectadas por restricciones impuestas por el Java SecurityManager. Por lo tanto, el almacenamiento de objetos que viene junto con <classname>TxCore</classname> se implementa utilizando técnicas de interfaz/implementación. La distribución actual tiene implementaciones las cuales escriben estados de objetos en el sistema de archivos locales o en la base de datos y las implementaciones remotas, en donde la interfaz utiliza un stub cliente (proxy) para servicios remotos. "
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "A los objetos persistentes se les asignan identificadores únicos (instancias de la clase Uid) cuando se crean y esto se utiliza para identificarlos dentro del almacenamiento de objetos. Los estados se leen utilizando la operación <literal>read_committed</literal> y las operaciones <literal>write_(un)committed</literal> las escriben. "
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "Recuperación y persistencia "
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"En la raíz de la jerarquía de las clases se encuentra la clase <classname>StateManager</"
+"classname>. Esta clase es la responsable de la activación y desactivación de objetos y la recuperación de objetos. La firma simplificada de la clase es: "
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "Se asume que los objetos pueden ser de tres sabores. Pueden ser simplemente recuperables, en cuyo caso <classname>StateManager</classname> tratará de generar y mantener información de recuperación apropiada para el objeto. Dichos objetos tienen tiempos de vida que no exceden el programa de la aplicación que los crea. Los objetos pueden ser recuperables y persistentes, en cuyo caso se asume que el tiempo de vida del objeto es mayor que el de crear o acceder a una aplicación de manera que además de mantener información de recuperación <classname>StateManager</classname> tratará de cargar automáticamente (descargar) cualquier estado persistente existente para el objeto llamando la operación de activación (desactivación) en el momento apropiado. Finalmente, puede que los objetos no posean ninguna de estas capacidades, en cuyo caso no se mantiene ninguna información de recuperación y tampoco se intenta activar/desactivar objetos."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Si un objeto es recuperable o recuperable y persistente entonces el "
+"<classname>StateManager</classname> invocará las operaciones "
+"<command>save_state</command> (al realizar <command>deactivate</"
+"command>), y <command>restore_state</command> (al realizar activate) "
+"en varios puntos durante la ejecución de la aplicación. Estas operaciones las debe implementar el programador ya que el <classname>StateManager</"
+"classname> no puede detectar cambios de estado a nivel de usuario, (estamos examinando la generación "
+"automática de las operaciones predeterminadas <command>save_state</command> y "
+"<command>restore_state</command> permitiéndole al programador sobreescribir esto cuando el conocimiento especifico de la aplicación se puede utilizar para mejorar la eficiencia). Esto le da la habilidad al programador de decidir que partes del estado de un objecto se deben hacer persistentes. Por ejemplo, para una hoja de cálculo puede que no sea necesario el guardar todas las entradas si algunos valores simplemente se pueden volver a calcular. La implementación <command>save_state</command> para una clase "
+"<classname>Example</classname> que tiene variables de miembros enteros llamadas A, B "
+"y C podrían ser simplemente:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+"Se asume que los objetos pueden tener tres sabores posibles. Pueden ser simplemente <emphasis>recoverable</emphasis>, en cuyo caso <classname>StateManager</"
+"classname> tratará de generar y mantener información de recuperación apropiada para el objeto. Tales objetos tienen tiempos de vida que no excenden el programa de la aplicación que los creó. Los objetos también pueden ser <emphasis>recuperables y persistentes</emphasis>, en cuyo caso se asume que el tiempo de vida del objeto es mayor que el de la aplicación creadora o de la aplicación accediendo de manera que además de mantener la información de recuperación <classname>StateManager</classname> intentará cargar de manera automática (descargar) cualquier estado persitente existente para el objeto llamando la operación <classname>activate</classname> (<classname>deactivate</"
+"classname>) en momentos apropiados. Finalmente, puede que los objetos no posean ninguna de estas habilidades, en cuyo caso nunca se mantiene información de recuperación y tampoco se intenta la activación/desactivación de manera automática. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Si un objeto es <emphasis>recuperable</emphasis> o <emphasis>recuperable "
+"y persistente</emphasis> entonces el <classname>StateManager</classname> invocará las operaciones <command>save_state</command> (al realizar "
+"<command>deactivate</command>) y <command>restore_state</command> (al realizar <command>activate</command>) en varios puntos durante la ejecución de la aplicación. Estas operaciones deben ser implementadas por el programador ya que el <classname>StateManager</classname> no puede detectar cambios en el estado a nivel de usuario, (estamos examinando la generación automática de las operaciones "
+"<classname>save_state</classname> y <classname>restore_state</classname>, permitiéndole al programador sobreescribir esto cuando el conocimiento especifico de la applicación se puede utilizar para mejorar la eficiencia). Esto le da la habilidad al programador de decidir las partes del estado de un objeto que se deben hacer persistentes. Por ejemplo, puede que para una hoja de cálculo no sea necesario el guardar todas las entradas si algunos valores se pueden volver a calcular. La implementación "
+"<classname>save_state</classname> para una clase "
+"<classname>Example</classname> que tiene variables con números enteros llamadas A, B y C pueden ser simplemente:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"Es necesario para todos los métodos <command>save_state</command> y "
+"<command>restore_state</command> el llamar a <classname>super.save_state "
+"</classname> y a <classname>super.restore_state</classname>. Esto es para atender las mejoras en los mecanismos de recuperación de fallos."
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "El ciclo de vida de un objeto transaccional para Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"Se asume que un objeto persistente no en uso se debe mantener en un estado <emphasis>pasivo</"
+"emphasis> con su estado residiendo en un almacenamiento de objetos y <emphasis>activado</emphasis> en demanda. El ciclo de vida fundamental de un objeto persistente en <emphasis>TXOJ</emphasis> se puede ver en <xref linkend="
+"\"figure_2\"/>."
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "El ciclo de vida de un objeto persistente. "
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "El objeto es inicialmente pasivo y es almacenado en el almacenamiento de objetos como una instancia de la clase <classname>OutputObjectState</classname>."
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+"Cuando la aplicación lo requiere el objeto es activado automáticamente al leerlo desde el almacenamiento utilizando una operación <command>read_committed</command> y luego es convertido de una instancia <classname>InputObjectState</"
+"classname> a un objeto completamente desarrollado por la operación "
+"<command>restore_state</command> del objeto."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "Cuando la aplicación ha terminado con el objeto, este es desactivado convirtiéndolo en una instancia <classname>OutputObjectState</classname> usando la operación <command>save_state</command> y luego se restaura de regreso al almacenamiento de objetos como una copia sombra utilizando write_uncommitted. Esta copia sombra se puede guardar, sobreescribiendo la versión previa utilizando la operación <command>commit_state</command>. Normalmente el sistema de transacciones oculta la existencia de copias sombras del programador. La desactivación del objeto normalmente sólamente ocurre cuando la transacción a nivel superior dentro de la cual el objeto fue activado realiza la operación de guardar."
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "Durante su tiempo de vida, un objeto persistente se puede hacer activo y luego pasivo muchas veces."
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "El controlador de concurrencia"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "El controlador de concurrencia es implementado por la clase <classname>LockManager</classname>, la cual proporciona un comportamiento predeterminado sensible que al mismo tiempo le permite al programador sobreescribir si la semántica particular de la clase que se está programando lo considera necesario. Así como con el <classname>StateManager</classname> y la persistencia, las implementaciones del control de concurrencia se acceden por medio de interfaces. Así como proporciona acceso a servicios remotos, las implementaciones actuales de control de concurrencia que se encuentran disponibles para las interfaces incluyen: "
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "la implementación local disk/database, en donde se hacen persistentes los bloqueos al ser escrito en el sistema de archivos local o en la base de datos."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "una implementación puramente local, en donde los bloqueos se mantienen dentro de la memoria de la máquina virtual que los creó; esta implementación tiene un mejor rendimiento que el escribir bloques en el disco local, pero los objetos no se pueden compartir entre máquinas virtuales. Un punto importante a notar es que es un objeto Java básico sin requerimientos lo cual puede ser afectado por el SecurityManager"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "La interfaz primaria del programador hacia el controlador de concurrencia es por medio de la operación setlock. Por defecto, el sistema en tiempo de ejecución refuerza el bloqueo estricto de dos fases siguiendo una política de múltiples lectores, un sólo escritor objeto por objeto. Sin embargo, como se puede ver en la <xref linkend=\"figure_1\"/>, al heredar de la clase <classname>Lock</classname> es posible para los proveedores el brindar sus propias implementaciones de bloqueo con diferentes reglas de conflicto de bloqueos para habilitar el <firstterm>control de concurrencia especifico del tipo</firstterm>."
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "La adquisición de bloqueos está bajo el control del programdor (por necesidad) ya que el <classname>StateManager</classname> no puede determinar si una operación modifica un objeto , <classname>LockManager</classname> no puede determinar si una operación requiere un bloqueo de escritura o de lectura. Sin embargo, la liberación del bloqueo se encuentra bajo el control del sistema y no requiere más intervención por parte del programador. Esto asegura que la propiedad de dos fases se pueda mantener de manera correcta. "
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"La clase <classname>LockManager</classname> es la principal responsable de administrar peticiones para establecer un bloqueo en un objeto o liberar el bloqueo cuando sea apropiado. Sin embargo, debido a que se deriva del <classname>StateManager</"
+"classname>, también puede controlar cuando algunas de las funcionalidades heredadas se invocan. Por ejemplo, <classname>LockManager</classname> asume que el establecer un bloqueo de escritura implica que la operación de invocación debe estar a punto de modificar el objeto. Esto al mismo tiempo debe hacer que la información de recuperación se guarde si el objeto es recuperable. De manera similar, la adquisición exitosa de bloqueos causa que se invoque activate."
+
+#. 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 "El código a continuación muestra la manera en que podemos tratar de obtener un bloqueo de escritura en un objeto: "
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "La máquina de protocolo de transacciones"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "La máquina del protocolo de transacciones está representada por la clase <classname>AtomicAction</classname>, la cual utiliza <classname>StateManager</classname> con el fin de registrar suficiente información para mecanismos de recuperación de fallos para completar la transacción en el evento de fallos. Tiene métodos para iniciar y terminar la transacción y para aquellas situaciones en donde los programadores requieren el implementar sus propios recursos, métodos para registrarlos con la transacción actual. Ya que <emphasis>TxCore</emphasis> soporta subtransacciones, si una transacción se incia dentro del ámbito de una transacción que ya se encuentra ejecutando entonces será anidada de manera automática. "
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "<emphasis>TxCore</emphasis> es conciente de multi-hilos, lo cual le permite a cada hilo dentro de una aplicación el compartir una transacción o ejecutar dentro de su propia transacción. Por lo tanto, todas las clases <emphasis>TxCore</emphasis> también tienen seguridad de hilos."
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "El ejemplo simple que mostramos a continuación ilustra la relación entre activación, terminación y el guardar los cambios: "
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "La ejecución del código anterior implica la siguiente secuencia de actividades: "
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"Creación de vinculaciones a objetos persistentes; esto puede implicar la creación de objetos stub y una llamada a objetos remotos. En el ejemplo anterior, volvemos a vincular a un objeto persistente ya existente identificado por <literal>Name-A</"
+"literal> y un nuevo objeto persistente. Un sistema de nombres para objetos remotos mantiene el mapeo entre nombres de objetos y ubicaciones y se describe en un capítulo posterior. "
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "Inicio de la transacción atómica."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "Invocaciones de operaciones: como parte de una invocación dada la implementación del objeto es la responsable de asegurarse que está bloqueada en modo de escritura o de lectura (asumiendo que no hay conflicto de bloqueos) y se inicializa, si es necesario, con el último estado que se ha guardado en el almacenamiento de objetos. La primera vez que se adquiere un bloqueo en un objeto dentro de una transacción el estado del objeto se adquiere del almacenamiento de objetos, si es posible."
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "Guardar los cambios de la acción a nivel superior. Esto incluye el actualizar el estado de cualquiera de los objetos modificados en el almacenamiento de objetos. "
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "Rompimiento de las vinculaciones creadas anteriormente. "
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "La jerarquía de clases "
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+"Las clases principales que componen la jerarquía de clases de <emphasis>TxCore</"
+"emphasis> se ilustran a continuación."
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"Los programadores de aplicaciones tolerantes a fallas estarán preocupados principalmente con las clases <classname>LockManager</classname>, <classname>Lock</classname> "
+"y <classname>AtomicAction</classname>. Otras de las clases que pueden ser importantes para un programador son <classname>Uid</classname> y <classname>ObjectState</"
+"classname>. La mayoría de las clases <emphasis>TxCore</emphasis> se derivan de la clase base <classname>StateManager</classname>, la cual proporciona funcionalidades primitivas necesarias para administrar objetos persistentes y recuperables. Estas funcionalidades incluyen soporte para la activación y des-activación de objetos, "
+"y recuperación de objetos con base en estado. La clase <classname>LockManager</"
+"classname> utiliza las funcionalidades de <classname>StateManager</classname> y "
+"<classname>Lock</classname> para proporcionar el control de concurrencia (bloqueo de dos fases en la implementación actual) requerida para implementar la propiedad de seriabilidad para acciones atómicas. La implementación de funciones de acciones atómicas está soportado por <classname>AtomicAction</classname> y "
+"<classname>TopLevelTransaction</classname>."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+"La mayoria de las clases del sistema <emphasis>TxCore</emphasis> se derivan de la clase base <classname>StateManager</classname>, la cual proporciona funcionalidades primitivas necesarias para administrar objetos persistentes y recuperables. Estas funcionalidades incluyen el soporte para la activación y des-activación de objetos,y recuperación de objetos con base en el estado. La clase <classname>LockManager</"
+"classname> utiliza las funcionalidades de <classname>StateManager</classname> y brinda el control de concurrencia requerido para implementar la propiedad de "
+"seriabilidad de las acciones atómicas."
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"Considere un ejemplo simple. Asuma que <classname>Example</classname> es una clase persistente definido por el usuario derivada apropiadamente del <classname>LockManager</classname>. Una aplicación que contiene una transacción atómica Trans accede un objeto (llamado O) de tipo <classname>Example</"
+"classname> invocando la operación op1 la cual involucra los cambios de estado a O. La propiedad de seriabilidad requiere que se debe adquirir un bloqueo de escritura en O antes de modificarlo; por lo tanto el cuerpo de op1 debe contener una llamada a la operación <literal>setlock</literal> del controlador de concurrencia:"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr ""
+"La operación <literal>setlock</literal>, que la clase <classname>LockManager</classname> proporciona, realiza las siguientes funciones "
+"en este caso:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Verifique la compatibilidad de bloqueos de escritura con los bloqueos actuales y si lo permite: "
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"Llame el activador de la operación <classname>StateManager</classname> que se cargará, si todavía no lo ha hecho, el último estado persistente de O del almacenamiento de objetos. Después llame al modificador de la operación <classname>StateManager</classname>, el cual tiene el efecto de crear una instancia de "
+"<classname>RecoveryRecord</classname> o <classname>PersistenceRecord</"
+"classname> para O dependiendo de si O era persistente o no (el bloqueo es un bloqueo <literal>WRITE</literal> (de escritura) así que el estado viejo del objeto se debe retener antes de su modificación) e insertarlo en el <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 "Cree e inserte una instancia LockRecord en la the RecordList de transacciones."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"Ahora suponga que la acción <literal>Trans</literal> se aborta un poco después de que se ha adquirido el bloqueo. Entonces la operación para deshacer de <classname>AtomicAction</classname> procesará la instancia <classname>RecordList</"
+"classname> asociada con <literal>Trans</literal> invocando una operación <literal>Abort</literal> apropiada en los varios records. La "
+"implementación de esta operación por la clase <classname>LockRecord</classname> "
+"liberará el bloqueo <literal>WRITE</literal> mientras que el de <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> restaurará el estado anterior de O."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr "Es importante darse cuenta de que todo el trabajo realizado antes lo hace de manera automática <emphasis>TxCore</emphasis> en nombre del programador de la aplicación. El programador sólo necesita iniciar la transacción y establecer un bloqueo apropiado; <emphasis>TxCore</emphasis> y los <emphasis>objetos transaccionales para Java</emphasis> se preocupan del registro de los participantes, la persistencia, el control de concurrencia y la recuperación. "
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1802 @@
+# translation of Chapter_02.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 11:53+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "Uso de TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+"En esta sección vamos a describir <emphasis>TxCore</emphasis> y los "
+"<emphasis>objetos transaccional para Java</emphasis> en más detalle y vamos a ver cómo se puede utilizar para construir aplicaciones transaccionales."
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "Administración de estado"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "Estados de objetos"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"<emphasis>TxCore</emphasis> necesita poder recordar el estado de un objeto por varias razones, incluyendo la recuperación (el estado representa algún estado pasado del objeto) y la persistencia (el estado representa el estado "
+"final de un objeto al terminar una aplicación). Debido a que todos estos requerimientos necesitan funcionalidades comunes, todas se implementan utilizando el mismo mecanismo - las clases <classname>Input/OutputObjectState</classname> y <classname>Input/OutputBuffer</classname>."
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"La clase <classname>Input/OutputBuffer</classname> mantiene una lista interna de las instancias en las que se pueden empacar (desempacar) contiguamente los tipos estándares Java utilizando las operaciones de empaque (desempaque). El tamaño de este buffer se modifica cuando se necesita en caso de que no tenga suficiente espacio. Todas las "
+"instancias se almacenan en el buffer en una forma estándard (también se llama network "
+"byte order) para hacerla independientes de la máquina."
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+"La clase <classname>Input/OutputObjectState</classname> proporciona todas las funcionalidades de <classname>Input/OutputBuffer</classname> (por medio de herencia) pero añade dos variables de instancias adicionales que significan el Uid y el tipo del objeto para el cual la instancia <classname>Input/OutputObjectState</"
+"classname> es una imagen comprimida. Estas se utilizan al acceder el almacenamiento de objetos durante el almacenamiento y recuperación del estado del objeto."
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "El almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "El almacenamiento de objetos que viene junto con <emphasis>TxCore</emphasis> tiene deliberadamente una interfaz más bien restringida para que se pueda implementar de varias maneras. Por ejemplo, los almacenamientos de objetos se implementan en una memoria compartida; en el sistema de archivos Unix (en varias formas diferentes); y como un almacenamiento accesible de manera remota. Puede encontrar más información completa sobre los almacenamientos de objetos en <emphasis>TxCore</emphasis> en el apéndice. "
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 "Como con todas las clases <emphasis>TxCore</emphasis> los almacenamientos de objetos predeterminados son implementaciones puras de Java; para acceder la memoria compartida y otras implementaciones de almacenamiento de objetos más complejas es necesario utilizar métodos nativos."
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"Todos los almacenamientos de objetos mantienen y recuperan instancias de la clase "
+"<classname>Input/OutputObjectState</classname>. Estas instancias son nombradas por el Uid y el tipo del objeto que representan. Los estados se leen usando la operación <command>read_committed</command> y el sistema los escribe utilizando la operación <command>write_uncommitted</command>. Bajo operación normal los nuevos estados de objetos no sobreescriben los estados antiguos de objetos si no que los escriben como copias sombras. Estas sombras reemplazan el original sólamente cuando se invoca la operación <command>commit_state</command>. Normalmente toda interacción con el almacenamiento de objetos es realizada por los componentes del sistema <emphasis>TxCore</"
+"emphasis> en tanto sea apropiado y por lo tanto la existencia de cualquier versión sombra de los objetos en el almacenamiento se encuentra escondida del programador."
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"Cuando un objeto transacción está guardando cambios es necesario que haga persistentes ciertos cambios de estado con el fin de que pueda recuperar en el evento de una falla o que pueda continuar guardando los cambios o que deshaga la transacción. Cuando utiliza los <emphasis>objetos transaccionales para Java</emphasis>, <emphasis>TxCore</"
+"emphasis> se ocupa de esto de manera automáticamente. Para garantizar propiedades ACID, estos cambios de estados deben ser vaciados en la implementación del almacenamiento de persistencia antes de que la transacción pueda proceder a guardar los cambios; si no se vacían, la aplicación puede asumir que la transacción ha guardado los cambios cuando en realidad los cambios del estado puede que aún se encuentren dentro de un caché del sistema en operación y es posible que se pierda en caso de una falla subsecuente de la máquina. Por defecto, <emphasis>TxCore</emphasis> se asegura de que tales cambios en el estado sean vaciados. Sin embargo, el hacer esto puede imponer una penalización importante en el rendimiento de la aplicación. Para prevenir el vaciado de estados de objetos transaccionales configure la variable <literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> como OFF. "
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr "Selección de una implementación de almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"<emphasis>TxCore</emphasis> viene con soporte para varias implementaciones diferentes de almacenamiento de objetos. El apéndice describe estas implementaciones, la manera de seleccionar y configurar una implementación dada (utilizando la variable de la propiedad <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal>) objeto por objeto e indica la manera en que se pueden proveer implementaciones adicionales."
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+"La clase <emphasis>TxCore</emphasis> <classname>StateManager</classname> "
+"administra el estado de un objeto y proporciona todos los mecanismos de soporte básicos requeridos por un objeto para propósitos de administración de estado. "
+"<classname>StateManager</classname> es el responsable de crear y registrar recursos apropiados relacionados con la persistencia y la recuperación del objeto transaccional. Si una transacción es anidada entonces <classname>StateManager</classname> también propagará estos recursos entre transacciones hijos y sus padres en el momento de guardar los cambios."
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+"Se asume que los objetos en <emphasis>TxCore</emphasis> pueden tener tres sabores posibles. Pueden ser simplemente recuperables, en cuyo caso "
+"<classname>StateManager</classname> tratará de generar y mantener información de recuperación "
+"apropiada para el objeto (como instancias de la clase "
+"<classname>Input/OutputObjectState</classname>) . Tales objetos tienen tiempos de vida que no exceden el programa de la aplicación que los crea. Los objetos pueden ser recuperables y persistentes, en cuyo caso se asume que el tiempo de vida del objeto es mayor que el de la aplicación creadora o la aplicación que está accediendo para que además de mantener la información de recuperación el <classname>StateManager</classname> tratará de cargar (descargar) de manera automática cualquier estado persistente existente para el objeto llamando la operación <command>activate</command> (<command>deactivate</command>) en el momento apropiado. Finalmente, puede que los objetos no posean ninguna de estas habilidades, en cuyo caso no se mantienen ninguna información de recuperación y tampoco se intenta la activación/"
+"desactivación del objeto de manera automática. Esta propiedad del objeto se selecciona en el momento de construcción del objeto y no se puede cambiar después. Por lo tanto un objeto no puede ganar (o perder) habilidades de recuperación en un momento arbitrario durante su tiempo de vida."
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"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 objeto es recuperable (o persistente) entonces <classname>StateManager</"
+"classname> invocará las operaciones <command>save_state</command> (al realizar <command>deactivation</command>), <command>restore_state</"
+"command> (al relaizar activate) y tipo en varios puntos durante la ejecución de la aplicación. Estas operaciones se deben implementar por el programador ya que el <classname>StateManager</classname> no tiene acceso a una descripción en tiempo de ejecución del diseño de un objeto Java arbitrario en la memoria y por lo tanto no puede implementar una política predeterminada para convertir la versión en memoria del objeto a su forma pasiva. Sin embargo, las capacidades que el <classname>Input/OutputObjectState</classname> proporciona hacen que la escritura de estas rutinas sea más bien simple. Por ejemplo, la implementación <command>save_state</"
+"command> para una clase <classname>Example</classname> que tenía las variables llamadas A, B y C podría ser simplemente:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 "Con el fin de soportar la recuperación en caso de fallos para objetos persistentes es necesario que todos los métodos <command>save_state</command> y <command>restore_state</command> llamen a <command>save_state</command> y a <command>restore_state</command>"
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "El método type se utiliza para determinar la ubicación en el almacenamiento de objetos en donde el estado de las instancias de esa clase se guardarán y ultimadamente se resstablecerán. De hecho este puede ser cualquier cadena válida. Sin embargo, debe evitar el utilizar el caracter  (#) ya que está reservado para directorios especiales que <emphasis>TxCore</emphasis> requiere."
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+"La operación <command>get_uid</command> de <classname>StateManager</"
+"classname> proporciona acceso de sólo lectura al nombre del sistema interno de un objeto para cualquiera que sea el propósito que el programador requiera (tal como la registración del nombre "
+"en un servidor de nombres). El valor del nombre del sistema interno sólo se puede configurar cuando un objeto es inicialmente construido - ya sea por la provisión de un parámetro explícito o generando un nuevo identificador cuando se crea el objeto."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 ""
+"El método <command>destroy</command> se puede utilizar para remover el estado de un objeto "
+"del almacenamiento de objetos. Esta es una operación atómica y por lo tanto sólo removerá el estado si la transacción a nivel superior dentro de la cual se invoca eventualmente guarda los cambios. El programador debe obtener acceso exclusivo al objeto antes de invocar esta operación."
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "Debido a que la recuperación y la persistencia tienen esencialmente requerimientos que se complementan (la única diferencia es donde almacena la información del estado y su propósito) <classname>StateManager</classname> effectivamente combina la administración de estas dos propiedades en un sólo mecanismo. Es decir, utiliza instancias de la clase Input/OutputObjectState para propósitos de recuperación y persistencia. Un argumento adicional que se le pasa a las operaciones <command>save_state</command> y <command>restore_state</command> le permite al programador determinar el propósito para el cual cualquier invocación dada se está realizando y por lo tanto permite guardar información diferente para propósitos de recuperación y persistencia. "
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "Modelos de objetos "
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "<emphasis>TxCore</emphasis> soporta dos modelos para objetos, los cuales como lo vamos a mostrar afectan la manera en que se implementa el estado de un objeto y el control de concurrencia:"
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>: sólo existe una copia del objeto dentro de la aplicación; esta residirá dentro de una MVJ y todos los clientes deben dirigir sus invocaciones a este servidor. Este modelo proporciona mejor rendimiento, pero representa un sólo punto de falla y en entornos multi-hilos puede que no proteja el objetode daño si un sólo hilo falla."
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Modelo de objeto single"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE: lógicamente existe una sóla instancia del objeto, pero hay copias distribuidas en diferentes MVJ; el rendimiento de este modelo es peor que el modelo SINGLE, pero proporciona mejor aislamiento de fallas."
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Modelo de objetos múltiples "
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"El modelo predeterminado es SINGLE. El programador puede sobreescribir esto objeto por objeto proporcionando una instancia apropiada de la clase <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> en la construcción del objeto. "
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "El modelo se puede cambiar entre cada instanciación sucesiva del objeto, por ejemplo, es necesario que no sea la misma durante el tiempo de vida del objeto. "
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr ""
+"Para brindar una clase <classname>ObjectName</classname> apropiada, es "
+"necesario realizar los siguientes pasos:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "cree una nueva instancia de <classname>ObjectName</classname>."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"configure el atributo del modelo del objeto usando el nombre <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>."
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "Por ejemplo:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Resumen "
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"En resumen, la clase <emphasis>TxCore</emphasis> <classname>StateManager</"
+"classname> administra el estado de un objeto y proporciona todos los mecanismos básicos de "
+"soporte requeridos por un objeto para propósitos de administración de estado. Algunas operaciones deben ser definidas por el desarrollador de la clase. Estas operaciones son: "
+"<command>save_state</command>, <command>restore_state</command> y "
+"<command>type</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"Se invoca cuando sea necesario guardar el estado de un objeto para uso futuro - principalmente para propósitos de recuperación o persistencia. El parámetro "
+"<literal>ObjectType</literal> indica la razón por la cual <emphasis>TxCore</emphasis> invocó "
+"<command>save_state</command>. Esto habilita al programador a guardar diferentes partes de la información en el <classname>OutputObjectState</classname> proporcionado como el primer parámetro "
+"dependiendo de si el estado se necesita para propósitos de recuperación o persistencia. Por ejemplo, los apuntadores a otros objetos <emphasis>TxCore</emphasis> se pueden guardar simplemente como apuntadores para propósitos de recuperación pero como Uid para propósitos de persistencia. Como se mostró anteriormente, la clase <classname>OutputObjectState</"
+"classname> proporciona operaciones convenientes para permitir el guardar las instancias de todos los tipos básicos en Java. Con el fin de soportar la recuperación de fallas para objetos persistentes es necesario que todos los métodos <command>save_state</"
+"command> llamen al <command>super.save_state</command>."
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "<command>save_state</command> asume que un objeto es consistente internamente y que todas las variables guardadas tienen valores válidos. Es la responsabilidad del programador asegurarse de que este es el caso."
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 "Se invoca cuando el estado de un objeto necesita reestablecerse a uno proveido. Una vez más el segundo parámetro permite diferentes interpretaciones del estado proporcionado. Con el fin de soportar la recuperación de fallos para objetos persistentes es necesario que todos los métodos <command>restore_state</command> llamen al <command>super.restore_state</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "Tipo de cadena ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"El mecanismo de persistencia <emphasis>TxCore</emphasis> requiere una manera de determinar el tipo de un objeto como cadena de manera que pueda guardar/reestablecer el estado del objeto a/desde el almacenamiento de objetos. Por convención esta "
+"información indica la posición de la clase en la jerarquía. Por "
+"ejemplo, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "Considere la siguiente clase básica <classname>Array</classname> derivada de la clase <classname>StateManager</classname> (en este ejemplo, para ilustrar la manera de guardar y restaurar el estado de un objeto, la variable highestIndex se utiliza para rastrear el elemento más alto de la lista que tienen un valor que no es cero):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+"Las operaciones <command>save_state</command>, <command>restore_state</command> y "
+"<command>type</command> se pueden definir así:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Control de concurrencia y administración de bloqueos"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+"La información de control de concurrencia dentro de <emphasis>TxCore</emphasis> se mantiene por medio de bloqueos. Los bloqueos que se requiere que se compartan entre objetos en diferentes procesos se pueden mantener dentro de un almacenamiento de bloqueos, similar a la función de almacenamiento de objetos presentada anteriormente. El almacenamiento de bloqueos que viene junto con "
+"<emphasis>TxCore</emphasis> de manera deliberada tiene una interfaz más bien restringida para que se pueda implementar de varias formas. Por ejemplo, los almacenamientos de bloqueos se implementan el la memoria compartida; en el sistema de archivos Unix (en varias formas diferentes); y como un almacenamiento accesible de manera remota. En el apéndice encontrará más información en relación con los almacenamientos de objetos disponibles en <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "Como con todas las clases <emphasis>TxCore</emphasis> los almacenamientos de bloqueos predeterminados son puras implementaciones Java; para acceder la memoria compartida y otras implementaciones de almacenamiento de bloqueos más complejos es necesario utilizar métodos nativos."
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Selección de una implementación de almacenamiento de bloqueos"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"<emphasis>TxCore</emphasis> viene con soporte para varias implementaciones de almacenamiento de objetos diferentes. Si el modelo de objeto que se utiliza es SINGLE, entonces no se requiere almacenamiento de bloqueos para mantener los bloqueos ya que la información sobre el objeto no se exporta de este. Sin embargo, si se utiliza el modelo MULTIPLE, entonces puede que diferentes entornos en tiempo de ejecución (procesos, máquinas virtuales Java)necesiten compartir información de control de concurrencia. El tipo de implementación del almacenamiento de bloqueos a utilizar se puede especificar para todos los objetos dentro de un entorno de ejecución dado utilizando la variable de la propiedad <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>. Actualmente esto puede tener uno de los siguientes valores:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "Esta es una implementación en memoria, la cual no permite compartir, por defecto, información almacenada entre entornos de ejecución. El programador de la aplicación es el responsable de compartir la información almacenada."
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"Esta es la implementación predeterminada y almacena información de bloqueo dentro del sistema de archivos local. Por lo tanto, los entornos de ejecución que comparten el mismo almacenamiento de archivos puede compartir información de control de concurrencia. La raíz del sistema de archivos en la cual se escribe la información de bloqueo se escribe en el directorio <filename>LockStore</"
+"filename> dentro del directorio de instalación <emphasis>TxCore</emphasis>. Esto se puede sobreescribir en tiempo de ejecución configurando apropiadamente la variable de la propiedad <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> o poniendo la ubicación dentro de la<literal>CLASSPATH</literal>:"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>o</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "Si ninguno de estos enfoques se toman entonces la ubicación predeterminada será al mismo nivel que el directorio <filename>etc</filename> de la instalación. "
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+"El controlador de concurrencia es implementado por la clase "
+"<classname>LockManager</classname>, la cual proporciona un comportamiento predeterminado sensible mientras que al mismo tiempo le permite al programador sobreescribir si se considera necesario por la semántica en particular de la clase que se está programando. La interfaz primaria del programador al controlador de concurrencia se encuentra por medio del la operación setlock. Por defecto, el sistema en tiempo de ejecución <emphasis>TxCore</emphasis> refuerza dos fases estrictas de bloqueo después de un lector múltiple, una política de escritura única objeto por objeto. La adquisición de bloqueos se encuentra bajo el control del programador ya que <classname>StateManager</classname> no puede determinar si una operación "
+"modifica un objeto, <classname>LockManager</classname> no puede determinar si una operación requiere un bloqueo de lectura o de escritura. Sin embargo el la libreación de bloqueos normalmente se encuentra bajo control del sistema y no requiere más intervención del programador. Esto asegura que la propiedad de dos fases se pueda mantener de manera correcta."
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"La clase <classname>LockManager</classname> es la principal responsable de administrar peticiones para establecer un bloqueo en un objeto o para liberar un bloqueo apropiadamente. Sin embargo, ya que se deriva del <classname>StateManager</"
+"classname>, también puede controlar cuando algunas de las funciones heredadas se invocan. Por ejemplo, si se otorga una petición para establecer un bloqueo entonces el "
+"<classname>LockManager</classname> invoca modificado directamente asumiendo que la modificación de un bloqueo de escritura implica que la operación de invocación debe estar a punto de modificar el objeto. A su vez esto puede hacer que se guarde la información de recuperación si el objeto es recuperable. De una manera similar, la adquisición de un bloqueo exitoso hace que se invoque <command>activate</command>."
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"Por lo tanto, <classname>LockManager</classname> es directamente el responsable de "
+"activar/desactivar los objetos persistentes y registrar "
+"<classname>Resources</classname> para administrar el control de concurrencia. Por dirigir la clase <classname>StateManager</classname>, también es la responsable de registrar <classname>Resources</classname> para la manipulación de estado persistente/recuperable y recuperación de objetos. El programador de aplicaciones "
+"simplemente establece bloqueos apropiados, inicia y para transacciones y "
+"extiende los métodos <command>save_state</command> y <command>restore_state</"
+"command> del <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "La operación <command>setlock</command> debe ser parametrizada con el tipo de bloqueo requerido (<literal>READ</literal> / <literal>WRITE</literal>)y el número de reintentos para adquirir el bloqueo antes de darse por vencido. Si tiene lugar un conflicto de bloqueos, tendrá lugar uno de los siguientes escenarios:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"Si el valor retry es igual al <literal>LockManager.waitTotalTimeout</"
+"literal> entonces el hilo que llamó <command>setlock</command> se bloqueará hasta que el bloqueo se libere o hasta que el tiempo de expiración especificado haya pasado, en cuyo caso se retornará <literal>REFUSED</literal>."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+"Si el bloqueo no se puede obtener inicialmente entonces <classname>LockManager</"
+"classname> intentará con el número especificado de reintentos, en espera del valor del tiempo de expiración especificado entra cada intento fallido. Por defecto es 100 intentos, cada inetnto separado por un retraso de 0.25 segundos; el tiempo entre intentos se especifica en micro-segundos."
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "Si tiene lugar un conflicto de bloqueos la implementación actual simplemente pone en espera las peticiones de bloqueo lo cual previene puntos muertos en vez de proporcionar un esquema de detección completo de puntos muertos. Si se obtiene el bloqueo que se ha pedido entonces la operación setlock retornará el valor <literal>GRANTED</literal>, de otra manera retorna el valor <literal>REFUSED</literal>. Es la responsabilidad del programador asegurarse de que lo que queda del código para una operación sólo sea ejecutado sólo si se otorga una petcición de bloqueo. A continuación encontrará los ejemplos del uso de la operación <command>setlock</command>. "
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "El mecanismo de control de concurrencia está integrado en el mecanismo de acción atómica por lo cual se asegura que cuando los bloqueos se otorgan en un objeto, la información apropiada se registra con la acción atómica actualmente ejecutando para asegurarse de que los bloqueos se liberan en el momento correcto. Esto libera al programador de tener que liberar de manera explícita cualquier bloqueo adquirido si se adquirieron dentro de acciones atómicas. Sin embargo, si los bloqueos se adquieren en un objeto <emphasis>fuera</emphasis> del ámbito de una acción atómica, es la responsabilidad del programador el liberar los bloqueos cuando se necesite utilizando la operación correspondiente <command>releaselock</command>."
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "Política de bloqueo "
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"De manera opuesta que otros sistemas, los bloqueos en <emphasis>TxCore</emphasis> no son tipos de sistemas especiales. En su lugar son simplemente instancias de otros objetos <emphasis>TxCore</emphasis> (la clase <classname>Lock</classname>, la cual también se deriva del <classname>StateManager</classname> para que los bloqueos se puedan hacer persistentes si es necesario y también se puede nombrar de una manera simple). Además, <classname>LockManager</classname> de manera deliberada no tiene conocimiento sobre la semántica de la política actual por medio de la cual las peticiones de bloqueo se otorgan. Dicha información es mantenida por las instancias de la clase <classname>Lock</"
+"classname>, las cuales proporcionan operaciones (la operación "
+"<literal>conflictsWith</literal>) por medio de la cual <classname>LockManager</"
+"classname> puede determinar si dos bloqueos causan un conflicto o no. Esta separación es "
+"importante ya que le permite al programador derivar nuevos tipos de bloqueos de la clase <classname>Lock</classname> básica y proporcionando las definiciones de operaciones en conflicto lo cual puede dar lugar a niveles mejorados de concurrencia."
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"La clase <classname>Lock</classname> brinda una operación <command>modifiesObject</"
+"command>, la cual <classname>LockManager</classname> utiliza para determinar si el otorgar esta petición de bloqueo requiere una llamada en modified. Esta operación se brinda para que los modos de bloqueo aparte de lectura y escritura simples se puedan soportar. La clase <classname>Lock</classname> proporcionada soporta la política tradicional de múltiples lecturas/sólo una escritura."
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "Construcción y destrucción de objetos "
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "Recuerde que los objetos <emphasis>TxCore</emphasis> pueden ser recuperables; recuperables y persistentes; o ninguno de los dos. Además cada objeto posee un nombre interno único. Estos atributos sólo se pueden configurar cuando se contruye ese objeto. Por lo tanto, <classname>LockManager</classname> proporciona dos constructores protegidos para uso con clases derivadas, cada una de las cuales cumple un propósito distinto:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "Este constructor permite la creación de nuevos objetos, es decir se asume que no existe un estado anterior. "
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+"Como se mostró anteriormente, este constructor permite la creación de nuevos objetos, es decir se asume que no existe un estado anterior. El <literal>ObjectType</literal> parámetro "
+"determina si un objeto es simplemente recuperable (indicado con un "
+"<literal>RECOVERABLE</literal>); recuperable y persistente (indicado con "
+"<literal>ANDPERSISTENT</literal>) o ninguno (<literal>NEITHER</literal>). "
+"Si un objeto se marca como persistente entonces el estado del objeto se almacenará en uno de los almacenamientos de objetos. El parámetro compartido sólo tiene sentido si es <literal>RECOVERABLE</literal>; si <literal>attr</literal> no es "
+"nulo y el modelo del objeto es <literal>SINGLE</literal> (el comportamiento predeterminado) entonces el estado recuperable del objeto se mantiene dentro del objeto mismo (por ejemplo, no tiene representación externa), de otra manera se utiliza un almacenamiento de objetos en-memoria (volátil) para almacenar el estado del objeto entre acciones atómicas."
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Los constructores para objetos persistentes nuevos deben hacer uso de acciones atómicas dentro de ellos mismos. Esto asegura que el estado del objeto es escrito de manera automática en el almacenamiento de objetos ya sea cuando la acción en el contructor guarda los cambios o si una clase para adjuntar existe, cuando la acción a nivel superior apropiada guarda los cambios. Más adelante ilustraremos este puntos con más ejemplos. "
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "Este constructor permite acceso a un objeto persistente existente, cuyo nombre interno es dado por el parámetro <literal>objUid</literal>. Los objetos construidos utilizando esta operación normalmente tendrán su estado previo (identificado por <literal>objUid</literal>) cargado automáticamente de un almacenamiento de objetos por el sistema. "
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "Como lo mencionamos antes, este constructor permite acceso a un objeto persitente existente, cuyo nombre interno está dado por el parámetro <literal>objUid</literal>. Los objetos construidos utilizando esta operación normalmente tendrán su estado previo (identificado por <literal>objUid</literal>) cargado automáticamente desde un almacenamiento de objetos por el sistema. Si el parámetro attr no es nulo y el modelo del objeto es <literal>SINGLE</literal> (el comportamiento predeterminado) entonces el objeto no será reactivado al comienzo de cada transacción a nivel superior. "
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "El destructor de una clase definida por el porgramador debe invocar la operación heredada terminate para informarle al mecanismo de administración de estado que el objeto está a punto de ser destruido de otra manera se pueden generar resultados inpredecibles. "
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"Ya que <classname>LockManager</classname> hereda de "
+"<classname>StateManager</classname>, pasará cualquier instancia "
+"<classname>ObjectName</classname> proporcionada a la clase <classname>StateManager</"
+"classname>. Como tal es posible configurar el modelo del objeto <classname>StateManager</classname> como se describió anteriormente."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,708 @@
+# translation of Chapter_03.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 13:29+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "Consideraciones sobre transacciones generales"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Consideraciones sobre transacciones avanzadas con TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "Tanto los programadores de las aplicaciones como los desarrolladores de las clases pueden utilizar las acciones atómicas (transacciones). Por lo tanto las operaciones completas (o partes de operaciones) se pueden hacer atómicas cuando se necesite por medio de la semántica de una operación en particular. Este capítulo describirá algunos de los problemas más sutiles relacionados con el uso de transacciones en general y <emphasis>TxCore</emphasis> en particular."
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "Verificación de transacciones "
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"En una aplicación con multi-hilos, múltiples hilos se pueden asociar con una transacción durante su tiempo de vida, por ejemplo, los hilos comparten el contexto. Además, es posible que si un hilo termina una transacción puede que otros hilos aún se encuentren activos dentro de él. En un entorno distribuido puede ser dificil el garantizar que todos los hilos hayan terminado con una transacción esta se termina. Por defecto, <emphasis>TxCore</emphasis> emitirá una advertencia si un hilo termina una transacción cuando otros hilos aún se encuentran activos dentro de él; sin embargo, le permitirá continuar con la terminación de la transacción. Hay otras soluciones posibles para este problema, por ejemplo, bloquear el hilo que está terminando la transacción hasta que todos los otros hilos se hayan desasociado a sí mismos del contexto de la transacción. Por lo tanto, <emphasis>TxCore</emphasis> proporciona la clase <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname>, la cual permite sobreescribir la política de terminación de transacciones/hilos. Cada transacción tiene una instancia de esta clase asociada consigo y los programadores de aplicaciones pueden proporcionar sus propias implementaciones transacción por transacción."
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Cuando un hilo intenta terminar la transacción y aún hay hilos activos dentro de esta, el sistema invocará el método de verificación en el objeto <classname>CheckedAction</classname> de la transacción. Los parámetros para verificar el método son: "
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Indica si la transacción está en proceso de guardar los cambios o de deshacerlos. "
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "El identificador de transacciones"
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "lista"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "una lista de los hilos actualmente marcados como activos dentro de esta transacción. "
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "Cuando la verificación retorna, la terminación de la transacción continua. Obviamente el estado de la transacción en este punto puede ser diferente de cuando se realizó la verficicación, por ejemplo, puede que la transacción haya guardado los cambios posteriormente. "
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "Estadísticas en conjunto"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+"Por defecto, JBossTS no mantiene ningún historial sobre las transacciones. Sin embargo, al configurar variable de la propiedad <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> como YES, el servicio de transacciones mantendrá información sobre el número de transacciones creadas y sus resultados. Esta información se puede obtener durante la ejecución de una aplicación transaccional por medio de la clase <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Optimización para guardar los cambios del último recurso"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+"En algunos casos es necesario listar los participantes que no están concientes de que el guardar los cambios se realiza en dos fases en una transacción de guardado en dos fases. Si sólo hay un sólo recurso entonces no es necesario guardar los cambios en dos fases. Sin embargo, ¿qué pasa si hay múltiples recursos en la transacción? En este caso, tiene lugar la optimización para guardar cambios del último recurso (LRCO del inglés Last "
+"Resource Commit optimization). Es posible que un sólo recurso que sea conciente de una fase (por ejemplo, sólo puede guardar los cambios o deshacerlos, sin un prepare) que se enliste en una transacción con recursos concientes de guardar los cambios en dos fases. El coordinador trata el recurso conciente de una fase de manera diferente en que este ejecuta la fase de preparación en todos los otros recursos primero y luego si quiere guardar la transacción entonces le pasa el control al recurso conciente de una fase. Si guarda los cambios entonces el coordinador registra la decisión para guardar los cambios y trata de guardar los cambios de los otros recursos también. "
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+"Con el fin de utilizar LRCO, su participante debe implementar la interfaz "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> y registrarse con la transacción por medio de la operación <command>BasicAction</"
+"command>.add ya que esta operación espera instancias de "
+"<classname>AbstractRecord</classname>, debe crear una instancia "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> y dar su participante como el parámetro constructor, como se muestra a continuación:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Transacciones anidadas"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr "No hay construcciones especiales para anidar transacciones. Si una acción se inicia mientras que otra acción está ejecutando entonces se anida de manera automática. Esto permite una estructura modular en las aplicaciones, en donde los objetos se pueden implementar utilizando acciones atómicas dentro de sus operaciones sin que el programador de aplicaciones se tenga que preocupar de las aplicaciones que las utilizarán, por ejemplo, si las aplicaciones utilizarán o no acciones atómicas también. Por lo tanto en algunas acciones de las aplicaciones puede ser el nivel superior mientras que en otras puede se anidado. Los objetos escritos de esta manera se pueden compartir entre programadores de aplicaciones y <emphasis>TxCore</emphasis> garantizará su consistencia. "
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "Si una acción anidada se aborta entonces se deshace todo su trabajo, aunque el bloqueo estricto de dos fases significa que cualquier bloqueo que se pudo haber obtenido se retendrá hasta que la acción a nivel superior guarde los cambios o aborte. Si una acción anidada guarda los cambios entonces el trabajo que ha realizado sólo será guardado por el sistema si la acción a nivel superior guarda los cambios, si la acción a nivel superior aborta entonces todo el trabajo se deshace. "
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "El guardar los cambios o el abortar una acción anidada no afecta de manera automática el resultado de la acción dentro de la cual se encuentra anidado. Esta aplicación es dependiente y le permite al programador estructurar acciones atómicas para que contengan fallas, trabajos deschechos, etc. "
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "Guardar los cambios de una transacción de manera asincrónica"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "Por defecto, JBossTS ejecuta el protocolo para guardar cambios de una transacción a nivel superior de una manera asincrónica, por ejemplo, se le dirá a todos los recursos registrados que se preparen en orden de un sólo hilo y luego se les dirá que guarden los cambios o que los deshagan. Esto tiene vasrias desventajas posibles: "
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "En el caso de que haya muchos recursos registrados, el prepare se puede invocar lógicamente en paralelo en cada recurso. La desventaja es que si un recurso 'temprano' en la lista de recursos registrados fuerza el deshacer los cambios durante la fase prepare, posiblemente muchas operaciones prepare se habrán hecho de manera innecesaria. "
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "En el casi en donde la aplicación no requiere un reporte huerístico, la segunda fase del protocolo para guardar los cambios se puede hacer de manera asincrónica ya que no tiene mayor importancia si tiene éxito o no. "
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"Por lo tanto, <emphasis>JBossTS</emphasis> proporciona las opciones en tiempo de ejecución para habilitar posibles optimizaciones de hilos. Al configurar la variable de entorno <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> como "
+"<literal>YES</literal>, durante la fase prepare se creará un hilo separado para cada participante registrado dentro de la transacción. Al configurar "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> como "
+"<literal>YES</literal>, se creará un hilo separado para completar la segunda fase de la transacción si no se requiere el conocimiento sobre resultados heurísticos. "
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "Transacciones independientes a nivel superior"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+"Además de las acciones atómicas anidadas y normales a nivel superior <emphasis>TxCore</"
+"emphasis> también soporta acciones independientes a nivel superior, las cuales se pueden utilizar para relajar la seriabilidad estricta de una manera controlada. Una acción independiente a nivel superior se puede ejecutar desde cualquier lugar dentro de otra acción atómica y se comporta exactamente igual que una acción normal a nivel superior, es decir, sus resultados se hacen permanentes cuando guarda los cambios y no se deshacen si cualquiera de las acciones dentro de la cual se anidó originalmente aborta."
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Acción independiente a nivel superior "
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "muestra un anidado típico de acciones atómicas, en donde la acción B se anida dentro de la acción A. Aunque la acción atómica C está anidada lógicamente dentro de la acción B (su operación Begin se invocó mientras que B estaba activo) debido a que es una acción independiente a nivel superior, guardará los cambios o abortará de manera independiente de las otras acciones dentro de la estructura. Gracias a la naturaleza de las acciones independientes a nivel superior estas se deben utilizar con mucho cuidado y sólo en situaciones en donde su uso se ha examinado de manera cuidadosa. "
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "Las acciones a nivel superior se pueden utilizar dentro de una aplicación declarando y utilizando instancias de la clase <classname>TopLevelTransaction</classname>. Estas se utilizan exactamente de la misma manera que las otras transacciones. "
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "Transacciones dentro de save_state y restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"Debe tener mucho cuidado al escribir las operaciones <command>save_state</command> y "
+"<command>restore_state</command> para asegurarse de no iniciar ninguna acción atómica (ya sea explícitamente en la operación o implícitamente por medio del uso de alguna otra operación). Esta restricción surge ya que puede que "
+"<emphasis>TxCore</emphasis> invoque <command>restore_state</command> como parte de su proceso de guardar cambios lo que resulta en un intento de ejecutar una acción atómica durante la fase para guardar cambios o de abortar de otra acción. Esto puede llegar a violar las propiedades de atomicidad de la acción que se está guardando (o abortando) y por lo tanto no se aconseja que la utilice."
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "Si consideramos el ejemplo de la lista que vimos antes, las operaciones set y get se pueden implementar como se muestra a continuación."
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Este es una simplificación del código que ignora errores y excepciones. "
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Objetos de recopilación de basura"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "Los objetos Java se borran cuando el recolector de basura determina que ya no se necesitan. El borrar un objeto se encuentra actualmente bajo el control de una transacción se debe realizar con mucho cuidado ya que si el objeto está siendo manipulado dentro de una transacción, su destino está determinado por la transacción. Por lo tanto, sin importar las referencias a un objeto transaccional mantenido por una aplicación, <emphasis>TxCore</emphasis> siempre retendrá sus propias referencias para asegurarse de que el objeto no sea recogido por la basura si no hasta que se haya terminado cualquier transacción. "
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "Expiración de transacciones "
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "Por defecto las transacciones viven hasta que la aplicación que las creó las termina o hasta que ocurra una falla. Sin embargo, es posible configurar un tiempo de expiración (en segundos) transacción por transacción de tal manera que si la transacción no ha terminado antes de que el tiempo de expiración se cumpla entonces se desharán la transacción automáticamente. "
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+"En <emphasis>TxCore</emphasis>, el valor del tiempo de expiración se proporciona como un parámetro "
+"para el constructor <classname>AtomicAction</classname>. Si se proporciona un valor de "
+"<literal>AtomicAction.NO_TIMEOUT</literal> (el predeterminado) entonces la transacción no expirará de manera automática. Cualquier otro valor positivo se asume para el tiempo de expiración de la transacción (en segundos). Un valor de cero se toma como un tiempo de expiración global predeterminado, el cual lo puede proveer la propidad <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. A menos de que se cambie el valor predeterminado es 60 segundos."
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"Cuando se crea una transacción a nivel superior con un tiempo de expiración diferente a cero, está sujeto a ser deshecho si no se ha completado dentro del número de segundos especificado. <emphasis>JBossTS</emphasis> utiliza un reaper thread separado, el cual monitorea todas las transacciones creadas localmente y las fuerza a deshacerlas si sus tiempos de expiración se acaban. Para prevenir que este hilo consuma el tiempo de la aplicación, sólo ejecuta periódicamente. El tiempo predeterminado de verificación es 120000 millisegundos, pero se puede sobreescribir configurando la variable de la propiedad <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> con otro valor válido, en microsegundos. De manera alterna, si el <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> se configura como "
+"<literal>DYNAMIC</literal>, entonces el transaction reaper se despertará cuando una transacción expire. Esto tiene la ventaja de terminar transacción de manera temprana pero puede que tenga que reprogramar el reaper thread continuamente. "
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"Si se especifica un valor de 0 para el tiempo de expiración de una transacción a nivel superior ( o no se especifica un tiempo de expiración) entonces <emphasis>JBossTS</emphasis> no impondrá ningún tiempo de expiración en la transacción, por ejemplo, se le permitirá que ejecute indefinidamente. El tiempo de expiración predeterminado se puede sobreescribir configurando la variable de la propiedad <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> al utilizar <emphasis>ArjunaCore</emphasis> o <emphasis>ArjunaJTS</"
+"emphasis>, o <literal>com.arjuna.ats.jts.defaultTimeout</literal> si usa"
+"<emphasis>ArjunaJTS</emphasis>"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,339 @@
+# translation of Chapter_04.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 14:31+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "Consejos"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "General"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Uso de transacciones en constructores "
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Los ejemplos incluidos en este manual utilizan transacciones en la implementación de constructores para nuevos objetos persistentes. Esto se hizo deliberadamente ya que garantiza la propagación correcta del estado del objeto para el almacenamiento de objetos. Recuerde que el estado de un objeto persistente modificado sólo se escribe en el almacenamiento de objetos cuando la transacción a nivel superior guarda los cambios. Por lo tanto si la transacción constructora se encuentra a nivel superior y guarda los cambios entonces el objeto recién creado se escribe en el almacenamiento y se hace disponible de manera inmediata. Sin embargo, si la transacción constructora guarda los cambios pero es anidada ya que alguna otra transacción empezó antes de ejecutar la creación del objeto entonces el estado sólo se escribirá si todas las transacciones padre guardan los cambios. "
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "Por otro lado, si el constructor no utiliza transacciones entonces es posible que surjan inconsistencias en el sistema. Por ejemplo, si no hay transacción activa cuando el objeto se crea entonces su estado no se guardará en el almacenamiento hasta la próxima vez que el objeto sea modificado bajo el control de alguna transacción. "
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "Considere este ejemplo simple:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"Aquí los dos objetos se crean fuera del control de la acción superior A. <literal>obj1</literal> es un nuevo objeto; <literal>obj2</literal> es un objeto viejo ya existente. Cuando la operación remember de <literal>obj2</"
+"literal> se invoca el objeto se activará y el Uid de "
+"<literal>obj1</literal> se recordará. Ya que esta acción guarda los cambios del estado persistente de <literal>obj2</literal> ahora contiene el Uid de <literal>obj1</"
+"literal>. Sin embargo, el estado de <literal>obj1</literal> no ha sido guardado ya que no ha sido manipulado bajo el control de cualquier acción. De hecho, a menos de que se modifique bajo el control de alguna acción después en la aplicación nunca se guardará. Sin embargo, si el constructor había utilizado una acción atómica el estado de <literal>obj1</literal> se habría guardado de manera automática cuando fue construido y esta inconsistencia no podía haber surgido."
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "Un poco más sobre save_state y restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+"<emphasis>TxCore</emphasis> puede invocar la operación definida por el usuario <command>save_state</"
+"command> de un objeto efectivamente en cualquier momento durante el tiempo de vida de un objeto incluyendo durante la ejecución del cuerpo del constructor del objeto (particularmente si utiliza acciones atómicas). Por lo tanto es importante que todas las variables que se guarden con save_state se incialicen de manera correcta."
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"Debe tener también mucho cuidado al escribir las operaciones <command>save_state</"
+"command> y <command>restore_state</command> y asegurarse de que no se han iniciado transacciones (ya sea de manera explícita en la operación o implicitamente por medio del uso de alguna otra operación). Esta restricción surge debido al hecho de que <emphasis>TxCore</emphasis> puede invocar <command>restore_state</"
+"command> como parte de su proceso de guardar los cambios lo que hace que se intente ejecutar una transacción atómica durante la fase de guardar los cambios o de abortar de otra transacción. Esto puede llegar a violar las propiedades de atomicidad de la transacción que se está guardando (o abortando) y por lo tanto no la sugerimos."
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"Con el fin de soportar la recuperación de fallos para objetos persistentes es necesario para todos los métodos <literal>save_state</literal> y <literal>restore_state</literal> de objetos de usuario llamar a <command>super.save_state</command> y a "
+"<command>super.restore_state</command>."
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Empacar objetos "
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"Todos los tipos básicos de Java (int, long, etc) se pueden guardar y reestablecer desde una instancia <classname>Input/OutputObjectState</classname> usando las rutinas "
+"pack (y unpack) que <classname>Input/OutputObjectState</"
+"classname> proporciona. Sin embargo el empacar y desempacar objetos se debe manejar de manera diferente. Esto se debe a que el empaque de objetos trae consigo los problemas adicionales de los alias. Esto se refiere a cuando las referencias de dos objetos diferentes de hecho apuntan al mismo objeto, por ejemplo: "
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 ""
+"Aquí, tanto s1 como s2 apuntan a la misma cadena y una implementación inocente de "
+"<command>save_state</command> podría terminar en copiar la cadena dos veces. Desde una perspectiva <command>save_state</command> esto simplemente es ineficiente. "
+"Sin embargo, esto hace que <command>restore_state</command> sea incorrecto ya que desempacaría las dos cadenas en áreas diferentes de la memoria lo que destruiría la información original sobre los alias. La versión actual de TxCore empacará y desempacará referencias de objetos separados."
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "Uso directo de StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+"Los ejemplos en este manual siempre han derivado las clases de usuario de "
+"<classname>LockManager</classname>. La razón para esto es doble. Primero, y la razón más importante, las restricciones de seriabilidad de acciones atómicas que la requieren y segundo reduce la necesidad de intervención del programador. Sin embargo, si sólo se requiere acceso a los mecanismos de recuperación y de persistencia de <emphasis>TxCore</emphasis> entonces es posible la derivación directa de la clase de un usuario de <classname>StateManager</classname>."
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+"Las clases derivadas directamente de <classname>StateManager</classname> deben hacer uso de sus mecanismos de administración de estado de manera explícita (estas interacciones normalmente las toma el <classname>LockManager</classname>). Desde el punto de vista de un programador llega hasta hacer uso apropiado de las the "
+"operaciones activate, deactivate y modified, ya que los constructores del <classname>StateManager</"
+"classname> son efectivamente idénticos a aquellos del "
+"<classname>LockManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr ""
+"<command>Activate</command> carga un objeto desde el almacenamiento de objetos. El UID del objeto ya debe estar configurado por medio del constructor y el objeto debe existir en el almacenamiento. Si el objeto se lee de manera exitosa entonces se llama a <command>restore_state</command> para construir el objeto en memoria. "
+"<command>Activate</command> es id impotente así que una vez un objeto haya sido activado se ignoran las llamadas siguientes. El parámetro representa el nombre raíz del almacenamiento de objetos para buscar el objeto. Un valor de nulo significa utilizar el lamacenamiento predeterminado."
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "Los inverso de activate. Primero llama a <command>save_state</command> para construir la imagen compacta del objeto, el cual luego se guarda en el almacenamiento de objetos. Los objetos sólo se guardan si han sido modificado desde que fueron activados. El parámetro representa el nombre raíz del almacenamiento de objetos en el cual se debe guardar el objeto. Un valor de nulo significa que utiliza el almacenamiento predeterminado."
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>Tiene</emphasis> que llamarlo antes de modificar el objeto en memoria. Si no lo llama deactivate no guardará el objeto en el almacenamiento de objetos."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,954 @@
+# translation of Chapter_05.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-04 15:15+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "Herramientas"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "Este capítulo explica cómo iniciar y utilizar el marco de trabajo de las herramientas y las herramientas que están disponibles. "
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "Inicio de las herramientas del servicio de transacciones "
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "La manera de iniciar las herramientas del servicio de transacciones es diferente dependiendo del sistema operativo que utilice: "
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr "Haga doble click en el enlace ‘Start Tools’ en el grupo del programa JBoss Transaction Service en el menú de inicio. "
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix "
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Inicie una shell bash y escriba: "
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr "Una vez que haya hecho esto aparecerá la ventana de herramientas. Este es el área de lanzamientos para todas las herramientas que se envían junto con el <emphasis>Servicio JBoss Transaction</emphasis>. En la parte superior de la ventana observará una barra de menú. Este menú tiene cuatro cosas: "
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>File</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Open JMX Browser"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr "Esto presenta la ventana del navegador JMX (consulte ***Using the JMX Browser para obtener mayor información sobre cómo utilizar el navegador JMX)."
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Open Object Store Browser"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+"Esto presenta la ventana del navegador del almacenamiento de objetos JBossTS (consulte ***Using the "
+"Object Store Browser para obtener mayor información sobre cómo utilizar el navegador del almacenamiento de objetos). "
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Settings"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "Esta opción abre el diálogo de configuración que le permite modificar las diferentes herramientas disponibles. "
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr "Exit"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "Esto cierra la ventana de herramientas y sale de la aplicación, cualquiera de los cambios que no se hayan guardado o que no se hayan confirmado se perderán. "
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>Performance</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Open"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+"Esto abre una ventana que examina el rendimiento – consulte la <xref linkend=\"Performance_Tool\"/> "
+"para obtener mayor información sobre la herramienta de rendimiento."
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr "Close All"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"Esto cierra todas las ventanas de rendimiento que se encuentran abiertas actualmente - consulte la <xref "
+"linkend=\"Performance_Tool\"/> para obtener mayor información sobre la herramienta que examina el rendimiento. "
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>Window</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Cascade Windows"
+
+#. 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 "Esto pone las ventanas en una línea diagonal para poder encontrar una ventana en específico. "
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Para cada ventana visible actualmente hay disponible una opción extra en el menú. El seleccionar esta opción del menú pone la ventana asociada en el primer plano. "
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "El menú <menuchoice><guimenu>Help</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Esto muestra la ventana que contiene información sobre el producto. "
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Uso de la herramienta de rendimiento"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 "La herramienta de rendimiento se puede utilizar para presentar la información sobre el rendimiento del servicio de transacciones. Esta información se recoge utilizando el bean JMX de rendimiento, lo cual significa que el servicio de transacción necesita ser integrado en un servidor de aplicaciones para poder brindar cualquier información sobre rendimiento. "
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"La información de rendimiento se presenta a través de una gráfica multi-series. Para ver esta gráfica simplemente abra una ventana de rendimiento seleccionando "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "La ventana que ahora puede ver contiene una gráfica multi-series que presenta la siguiente información:"
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr "Número de transacciones."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Número de transacciones que se han guardado."
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Número de transacciones abortadas."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Número de transacciones anidadas."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Número de heurísticos planteados. "
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "Para prender o apagar esta serie simplemente seleccione la opción del menú del menú series. "
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 "Cuando las series se prenden aparecen en una leyenda al final de la gráfica. El color al lado del nombre de la serie (por ejemplo, transacciones creadas) es el color de la línea que representa esos datos. "
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "Los datos se grafican frente al tiempo. El eje 'y' representa el número de transacciones y el eje 'x' representa el tiempo. "
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 "En cualquier momento se puede detener la muestra de datos y se puede reiniciar utilizando el menú <menuchoice><guimenu>Sampling</guimenu></menuchoice> y los datos actualmente visibles en la gráfica se pueden guardar en un archivo CSV (del inglés Comma Separate Values) para importar los datos en una aplicación de hoja de cálculo utilizando la opción del menú <menuchoice><guimenu>Save to .csv</guimenu></menuchoice> del menú <menuchoice><guimenu>Data</guimenu></menuchoice>. "
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Uso del navegador JMX"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"Para abrir la ventana del navegador JMX haga click en el menú <menuchoice><guimenu>File</"
+"guimenu></menuchoice> y luego haga click en la opción <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>. La ventana del navegador JMX se abrirá. "
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 "La ventana tiene dos secciones principales: el panel de detalles y el panel MBean. El panel MBean presenta los MBeans expuestos por el servidor MBean. Estos están agrupados por nombre de dominio. El panel de detalles presenta información sobre el MBean actualmente seleccionado. Para seleccionar un MBean simplemente haga click en el botón izquierdo del ratón y se seleccionará. La información que se presenta en el panel de detalles es la siguiente: "
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "El número total de MBeans registrados en este servidor. "
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "El número de constructores expuestos por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "El número de atributos expuestos por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "El número de operaciones expuestas por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "El número de notificaciones expuestas por este MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "Una breve descripción del MBean. "
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 "También hay un enlace <menuchoice><guimenu>View</guimenu></menuchoice> el cual si se hace click en él presenta los atributos y operaciones expuestas por este MBean. Desde aquí puede ver los atributos leíbles, puede alterar atributos de escritura y operaciones de invocación."
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "Uso de atributos y operaciones "
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+"Cuando se hace click en el enlace <menuchoice><guimenu>View</guimenu></menuchoice> se presenta la ventana View JMX Attributes and Operations. Desde ahí puede ver todos los atributos leíbles que el MBean seleccionado expone. También puede "
+"alterar los atributos que se pueden escribir. Si un atributo es de sólo lectura no podrá alterar el valor de un atributo. Para alterar el valor de un atributo simplemente haga doble click en el valor actual e introduzca el nuevo valor. Si el botón "
+"<guibutton>...</guibutton> se encuentra activado entonces puede hacer click en él para poder ver un método de edición más apropiado. Si el tipo del atributo es un nombre de objeto JMX entonces el hacer click en este botón presentará los atributos y operaciones JMX para ese objeto."
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "En cualquier momento puede hacer click en el botón <guibutton>Refresh</guibutton> para actualizar los valores del atributo. Si se presenta una excepción al recuperar el valor de un atributo, la excepción se presenta en el lugar del valor del atributo. "
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 "También puede invocar operaciones sobre un MBean. Una lista de operaciones expuestas por un MBean se presenta debajo de la lista de atributos. Para invocar una operación simplemente selecciónela de la lista y haga click en el botón <guibutton>Invoke</guibutton>. Si la operación requiere parámetros entonces aparecerá otra ventana desde donde debe especificar los valores para cada uno de los parámetros requeridos. Se especifican los valores de los parámetros de la misma manera que se especifican los valores de atributos JMX. Una vez que haya especificado el valor para cada uno de los parámetros haga click en el botón <guibutton>Invoke</guibutton> para realizar la invocación. "
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Una vez se ha completado la invocación del método se presentará su valor de retorno. "
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "Uso del navegador de almacenamiento de objetos"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+"Para abrir la ventana del navegador de almacenamiento de objetos haga click en el menú <menuchoice><guimenu>File</guimenu></menuchoice> y luego haga click en la opción "
+"<menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice> y podrá verla."
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "La ventana del navegador de almacenamiento de objetos se divide en cuatro secciones: "
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 "Raíz del almacenamiento de objetos - este es un menú desplegable de la raíz del almacenamiento de objetos actualmente disponible. El seleccionar una opción de la lista volverá a introducir la información de la vista de jerarquía con el contenido de la raíz seleccionada. "
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "Jerarquía del almacenamiento de objetos - este es un árbol que muestra la jerarquía del almacenamiento de objetos actual. El seleccionar un nodo de este árbol presentará los objetos almacenados en ese lugar. "
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objetos – es una lista de íconos que representan los objetos almacenados en el lugar seleccionado."
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 "Detalles del objeto - muestra información acerca del objeto seleccionado actualmente (sólo si el repositorio para ver el estado conoce el tipo de objeto; consulte la sección 'Writing an OSV' para obtener mayor información sobre cómo escribir un visor de estado de objetos (OSV - object state viewers)."
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "Visor de estado de objetos (OSV - Object State Viewers)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 "Cuando un objeto se selecciona del panel de objetos en la ventana principal, se invoca el visor de estado de objetos (OSV - object state viewers) para ese tipo de objeto. Una de las tareas de este visor es hacer que la información esté disponible a través de la interfaz del usuario al usuario para mostrar información sobre los objetos seleccionados. Distribuido con las herramientas estándares es un visor de estado de objetos para acciones atómicas, este visor presenta información sobre los registros abstractos en varias de sus listas (por ejemplo, heurístico, fallido, sólo lectura, etc). También es posible escribir sus propios visores, los cuales se pueden utilizar para presentar información sobre los tipos de objetos que haya definido. Cubriremos este tema a continuación. "
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "Escritura de un visor de estado de objetos"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "El escrbir un visor de estado de objetos le permite extender las capacidades del navegador de almacenamiento de objetos para mostrar el estado de los registros abstractos definidor por el usuario. Un visor plug-in es simplemente una clase, la cual implementa la interfaz: "
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "Se debe empacar en una JAR dentro del directorio de plugins. Este ejemplo muestra cómo crear un plugin del visor de estado de objetos para una subclase de registros abstractos, la cual se ve así: "
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+"Cuando este registro abstracto se ve en el navegador del almacenamiento de objetos sería bueno poder ver el valor actual. Esto es fácil de hacer ya que podemos leer el estado en una instancia de nuestro registro abstracto y llamar a <methodname>getValue()</"
+"methodname>. El siguiente es el código fuente del plug-in del almacenamiento de objetos: "
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+"El método <methodname>uidNodeExpanded</methodname> se invoca cuando un UID "
+"(identificación única) representando el tipo dado se expande en el árbol de jerarquías del almacenamiento de objetos. Esto no se  requiere por este plugin ya que este registro abstracto no es visible en el almacenamiento de objetos directamente, sólo se puede ver a través de una de las listas en una acción atómica. El método "
+"<methodname>entrySelected</methodname> se invoca cuando una entrada se selecciona de la vista de objetos la cual representa un objeto con el tipo dado. En ambos métodos el StatePanel se utiliza para presentar información con relación al estado del objeto. El panel de estado tiene los siguientes métodos que ayudan a presentar esta información:"
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>: Este método se puede utilizar para mostrar información general."
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 "<methodname>setData(String name, String value)</methodname>: Este método se utiliza para poner información en la tabla presentada por la herramienta del navegador de almacenamiento de objetos."
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: Este método se utiliza para activar el botón de detalles. La interfaz de escucha permite que un plug-in sea informado cuando se pulsa el botón. Ya queda de parte del desarrollador del plug-in el decidir la manera de presentar esta "
+"información adicional."
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 "En este ejemplo leemos el estado del almacenamiento de objetos y utilizamos el valor retornado por getValue() para poner una entrada en la tabla del panel de estado. El método getType() retorna el tipo frente al cual está registrado este plug-in. "
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"Para añadir este plug-in al navegador del almacenamiento de objetos es necesario empacarlo en un archivo JAR (Java Archive) con un nombre que tiene un prefijo 'osbv-'. El archivo JAR debe contener cierta información dentro del archivo manifiesto de manera que el navegador del almacenamiento de objetos sabe qué clases son plug-ins. Todo esto se puede realizar utilizando un script <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> así: "
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"Una vez que se ha creado el JAR con la información correcta en el archivo manifiesto sólo es necesario ponerlo en el directorio <emphasis>bin/tools/plugins</"
+"emphasis>. "
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,877 @@
+# translation of Chapter_06.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-01 15:06+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "Construcción de un objeto transaccional para aplicación en Java"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "Construcción de aplicaciones "
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Hay dos fases diferentes para el desarrollo de una aplicación TxCore: "
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Desarrollo de nuevas clases con ciertas características (por ejemplo, persistente, recuperable, control de concurrencia). "
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Desarrollo de la(s) aplicación(es) que utiliza las nuevas clases de objetos. "
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+"Aunque estas dos faces se pueden realizar paralelamente y por una sola persona, nos vamos a referir al primer paso como la tarea del desarrollador de clases y el segundo como la tarea del desarrollador de aplicaciones. El desarrollador de clases se ocupará de definir las operaciones <code>save_state</code> y "
+"<code>restore_state</code> apropiadas para la clase, configurando los bloqueos apropiados en las operaciones e invocando los constructores de clase TxCore apropiados. El desarrollador de aplicaciones estará más involucrado con la definición de la estructura general de la aplicación, particularmente con referencia al uso de acciones atómicas. "
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "Este capítulo ilustra los puntos que resaltamos en secciones anteriores resumiendo una aplicación simple: en este caso se desarrollará una simple clase de cola FIFO para valores enteros. La implementación de la cola se realizará con una estructura de lista enlazada doblemente y se implementará como un sólo objeto. Vamos a utilizar este ejemplo a través del resto de este manual para ayudar a ilustrar los variados mecanismos que TxCore proporciona. Mientras que este es un ejemplo poco realista de una aplicación, este nos permite describir todas las modificaciones TxCore sin necesitar un conocimiento profundo del código de la aplicación. "
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "En el resto de este capítulo vamos a asumir que la aplicación no está distribuida. Si este no es el caso entonces la información de contexto debe propagarse ya sea implícta o explícitamente. "
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "Descripción de cola"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "La cola es una cola FIFO tradicional, en donde los elementos se añaden al frente y se remueven del final. Las operaciones que la clase de cola proporciona permite poner los valores en la cola y removerlos de esta y también es posible cambiar o inspeccionar los valores de los elementos en la cola. En esta implementación de ejemplo, se utiliza una lista para representar la cola. En este ejemplo se impuso un límite de <code>QUEUE_SIZE</code> elementos. "
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "La definición de la interfaz Java de esta clase de cola simple se presenta a continuación: "
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Constructores y deconstructores"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "Como lo mencionamos en la sección anterior, para utilizar un objeto persitente existente se necesita el uso de un constructor especial que se requiere para tomar el Uid del objeto persistente; la implementación de tal constructor se puede ver a continuación:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "El constructor que crea un nuevo objeto persistente es similar:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+"El uso de una acción atómica dentro del constructor para un nuevo objeto sigue las directrices señaladas anteriormente y asegura que el estado del objeto se escribirá al almacenamiento de objetos cuando la acción atómica a nivel superior apropriada guarda los cambios (la cual será la acción A o alguna acción adjunta activa cuando se construyó el <code>TransactionalQueue</code>). El uso de acciones atómicas en un constructor es simple: una acción primero debe ser declarada y su operación begin se debe invocar; después la operación debe establecer un bloqueo apropiado en el objeto (en este caso se debe adquirir un bloqueo <code>WRITE</code>), luego se ejecuta el cuerpo principal del constructor. Si esto tiene éxito entonces las acción "
+"atómica se puede guardar de otra manera se aborta."
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "El destructor de la clase de cola sólo se requiere para llamr a la operación terminate del <methodname>LockManager</methodname>"
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state y tipo"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "Las implementaciones de save_state y restore_state son relativamente simples para este ejemplo:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"Ya que la clase de cola se deriva de la clase <classname>LockManager</"
+"classname>, el tipo de la operación debe ser: "
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "operaciones enqueue/dequeue "
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "Si las operaciones de la clase cola se codifican como acciones atómicas entonces la operación enqueue puede tener la estructura que presentamos a continuación (la operación dequeue se estructuraría de manera similar):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "La implementación de <methodname>queueSize</methodname> se muestra a continuación:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "operaciones inspectValue/setValue"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+"La implementación de <methodname>inspectValue</methodname> aparece a continuación. "
+"<methodname>setValue</methodname> es similar y no se muestra."
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "El cliente"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "En vez de mostrar todo el código para el cliente, vamos a concentrarnos en una proción representativa. Antes de invocar las operaciones en el objeto, el cliente tiene que vincularlo a este primero obviamente. En el caso local esto simplemente requiere que el cliente cree una instancia del objeto. "
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr ""
+"Antes de invocar una de las operaciones de la cola, el cliente inicia una "
+"transacción. La operación <methodname>queueSize</methodname> se puede ver a continuación:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Comentarios"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "Ya que el objeto cola es persistente, el estado del objeto sobrevivirá cualquier falla del nodo en el que se encuentra ubicado. El estado del objeto que sobrevivirá es el producido por la última acción atómica guardada a nivel superior realizada en el objeto. Si es la intención de una aplicación el realizar dos operaciones enqueue atómicamente, por ejemplo, entonces esto se puede lograr anidando las operaciones enqueue en otra acción atómica adjunta. Además, las operaciones concurrentes en tal objeto persistente se serializarán, previniendo inconsistencias en el estado del objeto. Sin embargo, ya que los elementos de los objetos cola no tienen control de concurrencia de manera individual, ciertas combinaciones de invocaciones de operaciones concurrentes se ejecutarán serialmente, mientras que lógicamente se podrían ejecutar concurrentemente. Por ejemplo, el modificar los estados de dos elementos diferentes en la cola. En la próxima sección abordarem!
 os algunos de estos asuntos. "
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,345 @@
+# translation of Chapter_07.po to
+# Language es-ES translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"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-07-02 14:14+1000\n"
+"Last-Translator: Angela Garcia\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "Opciones de configuración "
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Opciones  "
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "La siguiente tabla muestra las características de configuración y los valores predeterminados aparecen en cursiva. Encontrará más detalles sobre cada opción en las secciones relevantes de este documento. "
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "Opciones de configuración de TxCore "
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Nombre de la configuración "
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Valores posibles "
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "Prende o apaga la sincronización para el almacenamiento de objetos. Utilícelo con cuidado. "
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "Especifica el tipo de implementación del almacenamiento de objetos a utilizar. "
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/cualquier valor entero"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Configura el número de directorios sobre los cuales realizar hash en los estados de objeto para la implementación del almacenamiento de objetos HashedStore. "
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Especifica el tipo de la implementación del almacenamiento de bloqueos a utilizar."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Especifica la ubicación del almacenamiento de bloqueos."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "Cualquier lugar en donde la aplicación puede escribir."
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "Especifica la ubicación del almacenamiento de objetos. "
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "Especifica el nombre de la raíz del almacenamiento de objetos "
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "La implementación del registro de transacciones a utilizar. "
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "Prende o apaga (por defecto) el guardar los cambios de manera asincrónica. "
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "Prende o apaga (por defecto) prepare asincrónico. "
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "Nombre de clase JDBCAccess"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "La implementación JDBCAccess a utilizar para uso de almacenamientos de objetos a nivel de usuario. "
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "La implementación JDBCAccess a utilizar para uso de almacenamientos de objetos de transacciones."
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "Activar o desactivar la optimización del guardar los cambios de una fase. "
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "Activar o desactivar la optimización de sólo lectura para la segunda fase abort."
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "Iniciar/parar de recoger información estadística sobre transacciones."
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+"Iniciar con el sistema de transacciones activado o desactivado. Conmutar a través de la clase com."
+"arjuna.ats.arjuna.coordinator.TxControl. "
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Entero"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Tiempo de expiración en milisegundos "
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/es-ES/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,684 @@
+# 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: 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-07-08 09:40+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 "Implémentations d'ObjectStore"
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "L'ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "Dans cette annexe, nous examinerons les différentes implémentations TxCore 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
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Cette mise à jour de JBossTS comprend différentes 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
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 "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 zônes de stockage d'objets si l'option store par défaut est configurée). Toutes les zônes de stockage 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 maintient 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."
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"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 "ObjetStore persistants"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "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 "Fonctionnalité en commun"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "En plus des fonctions mentionnées ci-dessus, tous les ObjectStores persistants proposées suivent aux règles suivantes:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Chaque état d'objet est placé dans son propre fichier, qui est lui-même nommé par l'intermédiaire de l'<code>Uid</code> de l'objet."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+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
+#, no-c-format
+msgid ""
+"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 "Toutes les zones de stockage 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 à la zone de stockage, automatiquement."
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Toutes les zones de stockage feront référence à 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
+#, no-c-format
+msgid ""
+"&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/"
+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 "ShadowingStore"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"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, verrouillé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
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Si on remplace 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 "Pas de verrouillage au niveau-fichier"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+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 verrouillage 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
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+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 "HashedStore"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "Le <code>HashedStore</code> a la même structure que le ShadowingStore 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 (hachage) aux objets Uid. 255 sous-répertoires sont utilisés par défaut. Cependant, on peut changer cela en configurant la variable <code>HASHED_DIRECTORIES</code> d'environnement en fonction."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+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
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+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 fichier comme le fait l'implémenation de base de <methodname>ShadowingStore</methodname>. 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 de <methodname>ShadowingStore</methodname>."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "<methodname>HashedStore</methodname> a la même structure que les ShadowingStores 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 du même type. En utilisant ce store, les objets sont éparpillés parmi un ensemble de répertoires en appliquant la fonction hachage 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 "JDBCStore"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 "<methodname>JDBCStore</methodname> utilise une base de données JDBC pour sauvegarder les états d'objets persistants. Lorsque 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
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<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 la 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
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: cette méthode est utilisée pour retourner une des connexions provenant de getConnection. Les connexions sont retournées en cas d'errreur."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: peut être utilisé pour passer des informations arbitraires supplémentaires pour l'implémentation."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"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 défini dans la propriété <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> et se restreindra au nombre déterminé dans la propriété <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"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
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+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
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"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
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+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 "CachedStore"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "Cet ObjectStore utilise le HashedObjectStore, mais ne peut ni lire, ni écrire les états dans la zone de stockage de sauvegarde persistant. Il maintient les états dans le cache mémoire volatil et 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 à la perte d'états dans cache."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+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 "La zone de stockage peut être configurée avec les propriétés suivantes:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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 zones de stockage internes pour le hachage des états. La valeur par défaut est 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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, aboutiront 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 du hachage."
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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 si les vidages périodiques de cache sont sync-ed avec le disque. La valeur par défaut est OFF. Pour l'activer, paramétrer sur ON."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# 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: 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-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 "Définitions de classes"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "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 "Bibliothèque de classes"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Gestionnaire de verrouillage"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Entrée/SortieObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Entrée/SortieTampon"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +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: 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-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 "Groupe de documentation Red Hat"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# 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: 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-07-07 11:55+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 "Guide des programmeurs JBoss TS"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "Plate-forme SOA JBoss Enterprise"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "Cet ouvrage est l'édition d'Enterprise Application Platform du guide des programmeurs JBoss TS Programmers Guide."
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1001 @@
+# 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: 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-07-07 15:08+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 "Aperçu"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"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 des 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 tolérantes-de-fautes, utilisant des transactions. Ainsi, après une brève description, nous pourrons les utiliser pour la construction d'une application simple. Les classes 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 "TxCore – le moteur de transactions"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"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
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"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 traite 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
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "<classname>TxCore</classname> exploite des techniques orientées-objet pour proposer aux programmeurs une boîte à outils des classes Java grâce à partir desquelles les classes d'application peuvent hériter pour obtenir les propriétés voulues, comme la persistance et le contrô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 "Classe de hiérarchie Txcore"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"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 sont déclenchés automatiquement en cas d'échecs."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Sauvegarder les états d'objet"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"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 mises en paquets (ou dépaquetées) en contigu, en utilisant les opérations <command>pack</command> (<command>unpack</"
+"command>) appropriées. Le tampon est reconfiguré automatiquement 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 "L'ObjetStore"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "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
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+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 "Recouvrement et persistance"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "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 probablement aucune de ces capacités, dans lequel cas, aucune information de recouvrement n'est gardée, et l'activation/dÃ!
 ©sactivation de l'objet n'est jamais tentée automatiquement."
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 "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
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</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 "Cycle de vie d'un Objet Transactionnel pour Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"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 "Le cycle de vie d'un objet persistant."
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+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
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"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 une zone de stockage 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>."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "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>. Il 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
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+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 "Le contrôleur de concurrence (concurrency controller)"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "Le contrôleur de concurrence 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 de concurrence sont accessibles à travers les interfaces. En plus de procurer un accès aux services éloignés, les implémentations actuelles du contrôle dde concurrence disponible aux interfaces comprennent:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+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
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "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
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "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
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "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
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"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 "Le code ci-dessous montre comment on peut obtenir le verrou écriture d'un objet:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Le moteur du protocole de transaction"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "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
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+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 "Exemple"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "Le simple exemple ci-dessous illustre les relations qui existent entre activation, terminaison et validation:"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "L'exécution des codes ci-dessus implique la séquence d'activités suivante:"
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"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 nous relions à 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 "Début d'une transaction atomique."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "Invocations d'opérations: en tant qu'invocation donnée, l'implémentation de l'objet doit garantir qu'il est verrouillé en mode lecture ou écriture (en assumant qu'il n'y ait aucun conflit de verrouillage), et initialisé, 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
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+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 "Rupture des liaisons créées précédemment."
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "La hiérarchie des classes"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"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 fonctions 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é de sérialisation des actions atomiques. L'implémentation des facilités d'action atomique est supportée par <classname>AtomicAction</classname> et "
+"<classname>TopLevelTransaction</classname>."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"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
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 de <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 de concurrence."
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<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 "Vérifier la compatibilité verrou-écriture avec les verrous présents, et si permis:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"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 "Créer et insérer une instance de LockRecord dans la RecordList de Trans."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<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
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+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émarrer 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 de concurrence et du recouvrement."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1763 @@
+# 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: 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-07-07 16:03+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 "Utiliser TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<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 "Gestion des états"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "États des objets"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"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 raisons, y compris le recouvrement (l'état représente quelqu'état passé de l'objet), et la persistance (l'état représente l'état final d'un objet en fin 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 "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 "La classe <classname>Input/OutputBuffer</classname> maintient un tableau interne dans lequel des instances de types Java standard peuvent être mises en paquetage (ou dépaquetées) en contigu par le biais des opérations 'pack' (ou 'unpack'). La taille du tampon est automatiquement modifiée suivant qu'il y a suffisamment d'espace, et en fonction des besoins. Les instances sont toutes hébergées dans le tampon sous une forme standard (ordre octets réseau) pour qu'ils puissent être indépendants de la machine."
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"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 impliquent 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 "L'ObjectStore"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "L'ObjectStore proposé 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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"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 'garder' (hold) ou de 'retrait' (retrieve) d'ObjectStore 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 la zone de stockage 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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<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 être recouvert en cas d'échec, puis qu'il continue, soit d'être sauvegardé, soit d'être 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 de la zone de stockage 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 "Sélectionner une implémentation d'ObjectStore"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"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 "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<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
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 "Pour pouvoir supporter les recouvrements 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
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "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
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"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 du programmeur (comme par exemple l'enregistrement du nom dans un serveur de nommage). 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 un nouvel identifiant quand l'objet est créé."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "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 supprimera 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
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "Comme le recouvrement de l'objet et la persistance possèdent essentiellement des prérequis d'accompagnement ( la seule différence étant l'endroit 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 "Modèles d'objets"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+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
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<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 "Modèle d'objet unique"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "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 "Modèle d'objets multiples"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+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> et <command>restore_state</command> au moment de la construction de l'objet."
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "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
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+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 "créer une nouvelle instance d' <classname>ObjectName</classname>."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"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 "Par exemple:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Résumé"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<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 "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"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
+#, no-c-format
+msgid ""
+"<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 "<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 "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 "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 "String type ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"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, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Exemple"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Gestion du verrouillage ou contrôle de concurrence"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 "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 d'accès limité, 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. On peut trouver en annexe davantage d'informations sur les mémoires objet disponibles dans <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Sélectionner une implémentation de mémoire de verrouillage"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"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:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "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 "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"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
+#, no-c-format
+msgid ""
+"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 "<para>ou</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "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 "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 "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'il est 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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"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, comme il 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> invoque l'objet modifié directement en assumant que la configuration d'un verrou écriture implique que l'opération 'invoke' (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
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"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 de la classe du <classname>StateManager</classname>, et pour l'enregistrement de <classname>Resources</classname> en vue de 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>, <command>restore_state</"
+"command><command>save_state</command> et <command>restore_state</"
+"command> de <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "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 d'abandonner. Si un conflit de verrouillage avait lieu, on assisterait à l'un des scénarios suivants:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"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 délai spécifié pendant lequel <literal>REFUSED</literal> est retourné, soit échu."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"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
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "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, ne soit 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
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "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 "Politique de verrouillage"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"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 persistants si besoin est et puissent être nommés simplement). 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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"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 tels 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 "Construction et destruction d'objets"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+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 chacun un but bien particulier:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+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 "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 "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
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Les constructeurs de nouveaux objets persistants devraient utiliser les actions atomiques entre eux. Cela assurera que l'état de l'objet soit automatiquement inscrit dans la mémoire objet, soit quand l'action est sauvegardée dans le constructeur, ou si une action de clôture (enclosing action) 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 "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "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 "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"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 l'objet modèle "
+"<classname>StateManager</classname> comme expliqué plus haut."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,697 @@
+# 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: 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-07-07 16:32+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 "Problèmes de transactions en général"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Problèmes de transactions avancées avec TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "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érations) 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 "Vérifier les transactions"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"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 thread mutiples peuvent être associés à une transaction pendant sa durée de vie,c'est à dire que les threads partagent le même contexte. De plus, il est possible que si un thread termine une transaction, il est possible que d'autres threads soient toujours actifs. Dans un environnement distribué, il peut être difficile de s'assurer que tous les treads aient terminé une transaction lorsque celle-ci s'achève. Par défaut, <emphasis>TxCore</emphasis> émettra un message d'avertissement si un thread termine une transaction alors que d'autres threads sont toujours actifs, tout en permettant à la transaction de se terminer. Il existe d'autres solutions à ce problème, par ex., bloquer le thread qui termine la transaction jusqu'à ce que tous les autres threads 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/thread 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
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Lorsqu'un thread tente de terminer la transaction et qu'il y a toujours des threads 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 "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Indique si une transaction est en cours de processus de soumission ou est refoulée."
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "L'identifiant de la transaction."
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "une liste de tous les fils actuellement indiqués 'actifs' dans la transaction."
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "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 "Collection de statistiques"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "L'optimisation des soumissons de dernier ressort"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"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 refoulée 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, et 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
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<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 créer une instance <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> et proposer votre participant en tant que paramètre de constructeur, comme ci-dessous:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Transactions imbriquées"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+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, c'est à dire si oui ou non les applications vont utiliser des actions atomiques également. Ainsi, dans certaines applications, les actions 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
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "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
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "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 "Soumettre une transaction de manière asynchrone"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "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
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"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 "Transactions indépendantes au niveau supérieur"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"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 indépendantes au niveau supérieur, qui peuvent être utilisées pour relaxer  la sériabilité de manière contrôlée. Une action indépendante au niveau supérieur peut être exécutée à partir 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és, échoue."
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Action indépendante au niveau supérieur"
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "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 les utiliser avec attention et seulement dans des situations qui les justifient."
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "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 "Transactions dans save_state and restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"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'aucune action atomique n'ait 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 "Exemple"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+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
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Il s'agit d'une simplification du code, faisant abstraction des conditions d'erreurs et des exceptions."
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Poubelle ramassant des objets"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "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 "Timeouts de transaction"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "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 un 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 délai n'expire, elle sera automatiquement refoulée."
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"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 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 timeout est prise en secondes pour la transaction. Une valeur de zéro est considérée comme une valeur de timeout 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
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"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 timeout 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 échoue. Afin d'éviter que ce thread 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 se termine. 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
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"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 timeout d'une transaction à niveau supérieur (ou qu'aucun timeout 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 timeout 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 timeout requise en secondes."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,321 @@
+# 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: 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-07-08 09:42+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 "Astuces et conseils"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "Général"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Utiliser les transactions dans constructeurs"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Dans ce manuel, les exemples utilisaient des transactions pour l'implémentation de constructeurs de nouveaux 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é persistant est uniquement inscrit dans l'ObjetStore que lorsqu'une transaction est soumise au niveau supérieur. Ainsi, si la transaction du 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 qu'elle 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
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "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 "Considérer le simple exemple suivant:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"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 invoqué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 quelque action. En fait, à moins d'avoir été modifié sous le contrôle de quelque 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 "Plus d'informations sur save_state and restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+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 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
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"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 "Packing Objects"
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "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 "Utilisation directe de StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 "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
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"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
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"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 la zone de stockage. 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, c'est à dire 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 la zone de stockage par défaut'."
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "L'inverse d'activer. Appelle tout d'abord <command>save_state</command> pour construire une image compacte de l'objet qui est alors sauvegardée 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 "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>Doit</emphasis> être appelé avant de modifier l'objet en mémoire. S'il n'est pas appelé, l'objet ne sera pas sauvegardé dans l'ObjetStore par 'désactiver'."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,941 @@
+# 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: 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-07-08 09:45+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 "Outils"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introduction"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+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 "Démarrer les outils Service Transaction"
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+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 "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+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 "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Démarrer une shell bash et taper:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"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 "Le menu <menuchoice><guimenu>Fichiers</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Ouvrir le navigateur JMX"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+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 "Ouvrir le navigateur ObjectStore"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 "Ceci affiche la fenêtre du navigateur JBossTS Object Store (voir ***Utiliser le navigateur JBossTS Object pour davantage d'informations sur la façon d'utiliser le navigateur JBossTS Object)."
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Settings (Paramètres)"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+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 "Exit (Sortie)"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+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 "Le menu <menuchoice><guimenu>Performance</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Open (Ouverture)"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+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 "Close All (Tout fermer)"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"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 de performance - 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 "Le menu <menuchoice><guimenu>Window</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+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 "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 "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Pour chaque fenêtre visible couramment, une option de menu supplémentaire sera disponible ici. Sélectionner cette option du menu positionneront 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 "Le menu <menuchoice><guimenu>Help</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "A propos de "
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Ceci affiche la fenêtre 'A propos de' qui contient les informations produit."
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Utiliser l'outil de performance"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 "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
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<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
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+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 "Nombre de transactions."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Nombre de transactions soumises"
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Nombres de transactions abandonnées."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Nombre de transactions imbriquées."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Nombres d'heuristiques soulevés."
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+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
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 "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) en vue d'importer les informations dans un tableur en utilisant l'option de menu <menuchoice><guimenu>Save to .csv</guimenu></menuchoice> du menu <menuchoice><guimenu>Data</guimenu></menuchoice>."
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Utiliser le navigateur JMX"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"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
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 "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 révèle 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 "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 "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 "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 "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 "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 "Une brève description du MBean."
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 "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 "Utiliser les attributs et les opérations"
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 "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 clique sur la valeur existante et saisissez une nouvelle valeur. Si le bouton <guibutton>...</guibutton> est activé, vous pouvez cliquer 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
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "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
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 "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 "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 "Utiliser le navigateur ObjectStore"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 "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 "La fenêtre du navigateur de l'ObjectStore est divisée en quatre sections:"
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 "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 du root selectionné et son contenu."
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "Object Store Hierarchy – Il s'agit d'un arbre qui montre la hiérarchie des ObjectStore actuels. En sélectionnant un noeud de cet arbre, les objets hébergés à cet endroit s'afficheront."
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+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
+#, no-c-format
+msgid ""
+"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 "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 "Object State Viewers (OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 "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 un 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 son 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 "Rédiger un OSV"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "Rédiger un 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 "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 "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ée 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
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+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
+#, no-c-format
+msgid ""
+"<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 "<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
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"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
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"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
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"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>."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,874 @@
+# 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: 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-07-08 09:18+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 "Construire des objets transactionnels pour l'application Java"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+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 "Il existe deux phases distinctes pour le développement d'une application TxCore:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Développer 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 "Développer la(les) application(s) qui utilisent les nouvelles classe d'objets."
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"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
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "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
+#, no-c-format
+msgid ""
+"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 "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 "Description de la File d'attente (Queue)"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "Traditionnellement, il s'agit d'une liste d'attente 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 "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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Constructeurs et déconstructeurs"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "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
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "Le constructeur qui crée un nouvel objet persistant est similaire:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 "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
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+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
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state and type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "Les implémentations de save_state et restore_state sont relativement simples dans cet exemple:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "opérations enqueue/dequeue"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "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 "L'implémentation de <methodname>queueSize</methodname> est montrée ci-dessous:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "opérations inspectValue/setValue"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Le client"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "Au lieu de montrer tout 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
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+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
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Commentaires"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "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."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+# 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: 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-07-08 09:57+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 "Options de configuration"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Options"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "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 "Options de configuration TxCore."
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Nom de configuration"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Valeurs possibles"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Description"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "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 "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "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 "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/toute valeur relative"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Détermine le nombre de répertoires d'états d'objets à 'hacher' en vue de l'implémentation de la zone de stockage d'objets HashedStore."
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Préciser le type d'implémentation de LockStore à utiliser."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Préciser la location du LockStore."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "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 "Spécifier la location de l'ObjectStore."
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+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 "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+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 "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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+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 "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+
+#. Tag: entry
+#: Chapter_07.xml:137
+#, no-c-format
+msgid "Turns on or off (default) asynchronous prepare."
+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 "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "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 "L'mplémentation JDBCAccess à utiliser pour les ObjectStores au niveau-utilisateur."
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "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 "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 "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 "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 "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 "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+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 "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"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 "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Entier relatif"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Délai d'inactivité (timeout) en millesecondes"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/fr-FR/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,567 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:17
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 ""
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:58
+#, no-c-format
+msgid "The shadowing store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:112
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"property> sets the number of internal stores to hash the states over. The "
+"default value is 128."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"property> is the maximum size the cache can reach before a flush is "
+"triggered. The default is 10240 bytes."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"property> sets the time in milliseconds for periodically flushing the cache. "
+"The default is 120 seconds."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"property> determines whether flushes of the cache are sync-ed to disk. The "
+"default is OFF. To enable, set to ON."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,307 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 ""
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:22
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:27
+#, no-c-format
+msgid "Input/OutputObjectState"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:32
+#, no-c-format
+msgid "Input/OutputBuffer"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:37
+#, no-c-format
+msgid "<title>Uid</title>"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:42
+#, no-c-format
+msgid "AtomicAction"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,20 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,40 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,820 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 ""
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:65
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:70
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 ""
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    public LockResult setlock (Lock toSet, int retry, int timeout);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:120
+#, no-c-format
+msgid "The transaction protocol engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:134
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:161
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid ""
+"Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1355 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:26
+#, no-c-format
+msgid "InputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:28 Chapter_02.xml:34
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:42
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:49
+#, no-c-format
+msgid "InputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:56
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:70
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:94
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:98
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 ""
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:161
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:198
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:207
+#, no-c-format
+msgid "Lock management and concurrency control"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:216
+#, no-c-format
+msgid "Selecting a lock store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore "
+"myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:232
+#, no-c-format
+msgid "<para>or</para>"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:255
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:267
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 ""
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:278
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,573 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"BasicList list);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:21
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 ""
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:57
+#, no-c-format
+msgid "Last resource commit optimisation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:68
+#, no-c-format
+msgid "Nested transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:129
+#, no-c-format
+msgid "Garbage collecting objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,283 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:22
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:43
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 ""
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,802 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"cd &lt;JBossTS INSTALL DIRECTORY&gt;\n"
+"./run-tools.sh"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:36
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid ""
+"Once the method invocation has completed its return value will be displayed."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:275
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:279
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:306
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,603 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid ""
+"There are two distinct phases to the development of a TxCore application:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid ""
+"Developing the application(s) that make use of the new classes of objects."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid ""
+"The Java interface definition of this simple queue class is given below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:45
+#, no-c-format
+msgid "Constructors and deconstructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        numberOfElements = 0;\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:51
+#, no-c-format
+msgid "The constructor that creates a new persistent object is similar:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:55
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        super.terminate();\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:63
+#, no-c-format
+msgid "save_state, resotre_state and type"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:69
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        return \"/StateManager/LockManager/TransactionalQueue\";\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:74
+#, no-c-format
+msgid "enqueue/dequeue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:81
+#, no-c-format
+msgid "queueSize"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid ""
+"The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:86
+#, no-c-format
+msgid "inspectValue/setValue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:93
+#, no-c-format
+msgid "The client"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:104
+#, no-c-format
+msgid "Comments"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,340 @@
+# Language ja-JP translations for JBoss_TS_Programmers_Guide package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JBoss_TS_Programmers_Guide 1.0\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr ""
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr ""
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:48
+#, no-c-format
+msgid "Specify the type of object store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:90
+#, no-c-format
+msgid "Any location the application can write to."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:137
+#, no-c-format
+msgid "Turns on or off (default) asynchronous prepare."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:156 Chapter_07.xml:167
+#, no-c-format
+msgid "JDBCAccess class name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:170
+#, no-c-format
+msgid "The JDBCAccess implementation to use for transaction object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:181
+#, no-c-format
+msgid "Enable or disable the one-phase commit optimization."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:192
+#, no-c-format
+msgid "Enable or disable read-only optimization for the second phase abort."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/ja-JP/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_A.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_A.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_A.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,568 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:17
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 ""
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:58
+#, no-c-format
+msgid "The shadowing store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 ""
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:112
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr ""
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"property> sets the number of internal stores to hash the states over. The "
+"default value is 128."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"property> is the maximum size the cache can reach before a flush is "
+"triggered. The default is 10240 bytes."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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 ""
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"property> sets the time in milliseconds for periodically flushing the cache. "
+"The default is 120 seconds."
+msgstr ""
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"property> determines whether flushes of the cache are sync-ed to disk. The "
+"default is OFF. To enable, set to ON."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_B.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_B.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Appendix_B.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,308 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 ""
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:22
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:27
+#, no-c-format
+msgid "Input/OutputObjectState"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:32
+#, no-c-format
+msgid "Input/OutputBuffer"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:37
+#, no-c-format
+msgid "<title>Uid</title>"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Appendix_B.xml:42
+#, no-c-format
+msgid "AtomicAction"
+msgstr ""
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""

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

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Book_Info.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Book_Info.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Book_Info.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,821 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 ""
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:58
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 ""
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:65
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:70
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 ""
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    public LockResult setlock (Lock toSet, int retry, int timeout);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:111
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:120
+#, no-c-format
+msgid "The transaction protocol engine"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:134
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 ""
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:153
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:161
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid ""
+"Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_02.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_02.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_02.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1356 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:26
+#, no-c-format
+msgid "InputBuffer"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:28 Chapter_02.xml:34
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:42
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:49
+#, no-c-format
+msgid "InputObjectState"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:56
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:70
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:94
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:98
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 ""
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:161
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:198
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:207
+#, no-c-format
+msgid "Lock management and concurrency control"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:216
+#, no-c-format
+msgid "Selecting a lock store implementation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"java -D com.arjuna.ats.txoj.lockstore.lockStoreDir=/var/tmp/LockStore "
+"myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:232
+#, no-c-format
+msgid "<para>or</para>"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:255
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:267
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 ""
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:278
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr ""
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 ""
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_03.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_03.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_03.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,574 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"BasicList list);\n"
+"};"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:21
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 ""
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr ""
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:57
+#, no-c-format
+msgid "Last resource commit optimisation"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:68
+#, no-c-format
+msgid "Nested transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_03.xml:129
+#, no-c-format
+msgid "Garbage collecting objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 ""
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 ""
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_04.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_04.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_04.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,284 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:22
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:43
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 ""
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 ""
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 ""
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr ""
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_05.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_05.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_05.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,803 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"cd &lt;JBossTS INSTALL DIRECTORY&gt;\n"
+"./run-tools.sh"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:36
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr ""
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid ""
+"Once the method invocation has completed its return value will be displayed."
+msgstr ""
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:275
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:279
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 ""
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+msgstr ""
+
+#. Tag: para
+#: Chapter_05.xml:306
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_06.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_06.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_06.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,604 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid ""
+"There are two distinct phases to the development of a TxCore application:"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid ""
+"Developing the application(s) that make use of the new classes of objects."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid ""
+"The Java interface definition of this simple queue class is given below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:45
+#, no-c-format
+msgid "Constructors and deconstructors"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        numberOfElements = 0;\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:51
+#, no-c-format
+msgid "The constructor that creates a new persistent object is similar:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:55
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 ""
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        super.terminate();\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:63
+#, no-c-format
+msgid "save_state, resotre_state and type"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:69
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        return \"/StateManager/LockManager/TransactionalQueue\";\n"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:74
+#, no-c-format
+msgid "enqueue/dequeue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:81
+#, no-c-format
+msgid "queueSize"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid ""
+"The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:86
+#, no-c-format
+msgid "inspectValue/setValue operations"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:93
+#, no-c-format
+msgid "The client"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 ""
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr ""
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+msgstr ""
+
+#. Tag: title
+#: Chapter_06.xml:104
+#, no-c-format
+msgid "Comments"
+msgstr ""
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_07.pot
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_07.pot	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/Chapter_07.pot	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,341 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-06-05 22:51+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr ""
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr ""
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 ""
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:48
+#, no-c-format
+msgid "Specify the type of object store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:90
+#, no-c-format
+msgid "Any location the application can write to."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:137
+#, no-c-format
+msgid "Turns on or off (default) asynchronous prepare."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:156 Chapter_07.xml:167
+#, no-c-format
+msgid "JDBCAccess class name"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:170
+#, no-c-format
+msgid "The JDBCAccess implementation to use for transaction object stores."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:181
+#, no-c-format
+msgid "Enable or disable the one-phase commit optimization."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:192
+#, no-c-format
+msgid "Enable or disable read-only optimization for the second phase abort."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr ""
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr ""

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/JBoss_TS_Programmers_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Programmers_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,683 @@
+# translation of Appendix_A.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-04 09:35+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Implementações de armazenamento de objeto "
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "O ObjectStore"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "Neste apêndice, examinaremos as várias implementações de armazenamento de objeto TxCore, além de fornecer embasamento de como as demais implementações podem ser criadas e ligadas a um aplicativo."
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"Esta liberação do JBossTS contém diversas implementações diferentes de um armazenamento básico de objeto. Cada um serve um propósito particular, além de ser, geralmente, otimizado para este princípio. Todas as implementações são derivadas da interface <interface>ObjectStore</interface>. Isto define as operações mínimas que devem ser fornecidas para que uma implementação de armazenamento de objeto possa ser usada pelo JBossTS. A implementação padrão de armazenamento de objeto pode ser substituída no período de rodagem pela configuração de variável de propriedade <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property>, para um dos tipos descritos abaixo:"
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 "O programadores não precisam interagir com qualquer uma das implementações de armazenamento de objeto diretamente, a não ser que, possivelmente, criá-las em primeiro lugar (mesmo que isto não seja necessário se o tipo de armazenamento padrão for usado como JBossTS, ele criará armazenamentos conforme necessário). Todos os armazenamentos manipulam instâncias da classe <classname>ObjectState</classname>, que são nomeadas usando um tipo (através do object's type() operation) e um Uid. Já para propósitos de ações atômicas, os estados de objeto no armazenamento podem estar basicamente em dois estados distintos: OS_COMMITTED e OS_UNCOMMITTED. Um estado de objeto inicializa no estado OS_COMMITTED, porém quando modificado sob controle de uma ação atômica, um segundo estado de objeto novo poderá ser gravado como pertecente ao estado OS_UNCOMMITTED. Caso a ação seja confirmada este segundo estado do objeto substitui o original e inicializa OS_COMMITTED!
 . Caso a ação seja abortada, este segundo estado do objeto é simplesmente descartado. Todas as implementações fornecidas com esta liberação manuseiam estas transições de estado fazendo uso de cópias ocultas destes estados de objeto. No entanto, qualquer outra implementação que mantém esta abstração é permitida. Os estados de objeto poderão tornar-se ocultos (e desta forma inacessíveis), sob o controle do sistema de recuperação de travamento."
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"A navegação através dos conteúdos de um armazenamento é possível através de <methodname>allTypes</methodname> e operações <methodname>allObjUids</methodname>. A <methodname>allTypes</methodname> retorna um <type>InputObjectState</type> contendo todos os nomes de tipos de todos os objetos, num armazenamento terminado por um nome nulo. A <methodname>allObjUids</"
+"methodname> retorna um <type>InputObjectState</type> que contém todos os Uids de todos os objetos de um dado tipo terminado pelo <methodname>Uid.nullUid()</methodname> especial."
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "Armazenamentos de objeto persistente"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "Esta seção descreve brevemente as características e otimizações de cada implementação fornecida pelo armazenamento de objeto persistente. Os estados de objeto persistente são mapeados na estrutura do sistema de arquivo suportado pelo sistema de operação host. "
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "Funcionalidade comum"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "Em adição aos recursos mencionados anteriormente, todos os armazenamentos de objeto de persistência fornecidos obedecem as seguintes regras:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "Cada estado de objeto é armazenado no próprio arquivo nomeado usando o <code>Uid</code> do objeto."
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "O tipo de um objeto (como dado pela operação <methodname>type()</methodname>) determina o diretório pelo qual o objeto é posicionado."
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "Todos os armazenamentos possui um diretório de raiz comum que é determinado quando o JBossTS for configurado. O nome deste diretório é automaticamente precedido de qualquer informação de raiz específica de armazenamento."
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "Todos os arquivos também possuem noção do diretório de raiz localizado, do qual é automaticamente precedido do tipo de objeto, para determinar o nome do diretório final. O nome da raiz localizado é especificado quando o armazenamento for criado. Por padrão, o nome de raiz localizado é <code>defaultStore</code>. "
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "O armazenamento de ocultação"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+"Esta é a versão original do armazenamento do objeto conforme fornecido em liberações anteriores, além de ser implementado pela classe <classname>ShadowingStore</"
+"classname>. Este procedimento é simples e lento. Ele usa pares de arquivos para representar objetos (a versão oculta e a versão comprometida) e arquivos são abertos, bloqueados, operados, desbloqueados e fechados em cada interação com o armazenamento do objeto. Desta forma, porções significantes de tempo podem ser gastas no sistema apenas abrindo, fechando e renomeando arquivos, sendo que todas estas operações são bem caras."
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "Caso substituirmos a implementação de armazenamento de objeto, o tipo deste armazenamento de objeto será <type>ShadowingStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "Sem bloqueamento do nível de arquivo"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr "Uma vez que os objetos transacionais são atualmente controlados através do <methodname>LockManager</methodname>, não é necessário impor um bloqueamento adicional ao nível do arquivo, pois a implementação ShadowingStore básica o faz. Portanto, a implementação de armazenamento de objeto padrão para o JBossTS, <methodname>ShadowNoFileLockStore</methodname>, baseia-se no bloqueamento de nível do usuário. Isto o ativa para fornecer um melhor desempenho do que o da implementação <methodname>ShadowingStore</methodname>. "
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "Caso substituindo a implementação de armazenamento de objeto, o tipo de armazenamento de objeto será <type>ShadowNoFileLockStore</type>."
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "O armazenamento com hash"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 "O <code>HashedStore</code> possui a mesma estrutura para os estados do objeto como os armazenamentos ocultados. No entanto, ele possui uma estrutura de diretório alternativa que é melhor adaptada para o armazenamento de números maiores de objetos do mesmo tipo. O uso destes objetos de armazenamento são dispersos dentro de um conjunto de diretórios, apenas aplicando uma função de hash ao Uid do objeto. Por padrão, 255 sub-diretórios são usados. No entanto, isto pode ser substituído configurando a variável do ambiente <code>HASHED_DIRECTORIES</code> conseqüentemente."
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "Caso substituirmos a implementação de armazenamento do objeto, o tipo deste armazenamento de objeto será <type>HashedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr "Uma vez que os objetos são regularmente controlados através do <methodname>LockManager</methodname>, não é necessário impor um bloqueamento adicional ao nível do arquivo, já que a implementação <methodname>ShadowingStore</methodname> básica o faz. Desta forma, a implementação de armazenamento do objeto padrão para JBossTS, <methodname>ShadowNoFileLockStore</methodname>, baseia-se no bloqueamento do nível do usuário. Isto o ativa para o fornecimento de um melhor desempenho que o da implementação <methodname>ShadowingStore</methodname>."
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 "O <code>HashedStore</code> possui a mesma estrutura para os estados do objeto como os armazenamentos ocultados. No entanto, ele possui uma estrutura de diretório alternativa que é melhor adaptada para o armazenamento de números maiores de objetos do mesmo tipo. O uso destes objetos de armazenamento são dispersos dentro de um conjunto de diretórios, apenas aplicando uma função de hash ao Uid do objeto. Por padrão, 255 sub-diretórios são usados. No entanto, isto pode ser substituído configurando a variável do ambiente <code>HASHED_DIRECTORIES</code> conseqüentemente."
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "O armazenamento JDBC"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 "O <methodname>JDBCStore</methodname> usa um banco de dados JDBC para salvar os estados de objeto persistente, quando usado em conjunção aos Objetos Transacionais, para que o suporte de transação aninhado Java API esteja disponível. Na implementação atual, todos os estados de objeto estão armazenados como Binary Large Objects (BLOBs) na mesma tabela. A limitação de tamanho de estado de objeto imposta é 64k, quando usando BLOBs. Caso uma tentativa seja feita para armazenar um estado de objeto que excede este limite, um erro será emitido e o estado não será armazenado. Desta maneira, a transação será conseqüentemente forçada a reversão."
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"Quando utilizando o armazenamento do objeto JDBC, o aplicativo deverá fornecer uma implementação da seguinte interface, localizada no pacote <code>com.arjuna."
+"ats.arjuna.objectstore</code>:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "A implementação desta classe é responsável em fornecer a <emphasis>Connection</emphasis>, da qual o JDBC ObjectStore usará para salvar e restaurar os estados do objeto:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<methodname>getConnection</methodname>: retorna a Conexão para uso. Este método irá ser chamado a qualquer instante que a conexão for solicitada e a implementação deve usar qualquer política necessária para determinar qual conexão retornar. Este método não precisa retornar a mesma instância de conexão mais de uma vez."
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>: este método será chamado para retornar uma das Conexões adquiridas a partir do getConnection. As conexões serão retornadas caso qualquer erro ocorrer quando utilizando-as."
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>: este pode ser usado para passar informação arbitrária adicional para a implementação."
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"O armazenamento do objeto JDBC inicializará a solicitação de números de conexões definidas na propriedade <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property>, além de não utilizar mais do que definido na propriedade <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property>."
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr ""
+"A implementação da interface <interfacename>JDBCAccess</interfacename> para uso, deve ser configurada na variável da propriedade <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property>."
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "Caso substituirmos a implementação de armazenamento de objeto, o tipo deste armazenamento do objeto será <type>JDBCStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"O armazenamento do objeto JDBC pode ser usado para gerenciamento do log de transação. Neste caso, a implementação do log de transação deve ser configurada para <property>JDBCActionStore</property> e a implementação <methodname>JDBCAccess</"
+"methodname> deve ser fornecida através da variável da propriedade <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property>. Neste caso, o nome da tabela padrão é JBossTSTxTable."
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "É possível usar a mesma implementação JDBCAccess para ambos armazenamento do objeto do usuário e também o log de transação."
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "O armazenamento com cache"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "Este armazenamento de objeto usa o armazenamento de objeto com hash, mas não lê ou grava os estados para o armazenamento de backup persistente imediatamente. Isto mantém os estados num cache de memória volátil e tanto limpa o cache periodicamente ou quando ele estiver cheio. As associadas semânticas de falha com este armazenamento do objeto são diferentes dos armazenamentos de objeto persistentes normais, uma vez que a falha pode resultar em estados de desaparecimento do cache."
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "Caso substituirmos a implementação do armazenamento do objeto, o tipo deste armazenamento do objeto será <type>CachedStore</type>."
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "O armazenamento pode ser configurado com as seguintes propriedades:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> configura o número de armazenamentos internos para realizar o hash aos estados. O valor padrão é 128."
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> é o valor máximo que o cache pode alcançar antes que a limpeza seja triggered. O padrão é de 10240 bytes."
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> é o número máximo de ítens removidos que o cache pode conter antes de uma limpeza ser triggered. Por padrão, as chamadas para remover um estado que está no cache irão simplesmente remover o estado do cache, mas deixar uma entrada em branco (ao invés de remover a entrada imediatamente, o que afetaria o desempenho do cache). Quando triggered, estas entradas são removidas do cache. O valor padrão é o dobro do tamanho do hash. "
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> é o número máximo de ítens que são permitidos para a construção no cache, antes do mesmo ser esvaziado. O valor do padrão é 100. "
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> configura o tempo em milhões de segundo para o esvaziamento periódico do cache. O padrão é 120 segundos."
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> determina se é que os esvaziamentos do cache são sync-ed para o disco. O padrão é OFF. Apenas ajuste para ON, no caso da ativação. "
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# translation of Appendix_B.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-04 09:51+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "Definições de classes"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "Este apêndice contém uma visão geral daquelas classes que o programador do aplicativo usará normalmente. O objetivo deste apêndice é fornecer um guia de referência rápido para estas classes, para o uso quando gravando os aplicativos em TxCore. Para melhor clareza, serão fornecidas apenas as interfaces protegidas e públicas das classes."
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "Biblioteca de classe"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Gerenciador de bloqueio"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-24 10:22+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Grupo de Documentação da Red Hat"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,44 @@
+# translation of Book_Info.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-02 14:09+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "Guia de Programadores do JBoss TS"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise SOA Platform"
+msgstr "Plataforma do JBoss Enterprise SOA"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "Este livro é a edição da Plataforma de Aplicativo Enterprise do Guia de Programadores do JBoss TS."
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,999 @@
+# translation of Chapter.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-02 16:36+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "Visão Geral"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"Este documento contém uma descrição de uso do mecanismo da transação <classname>TxCore</"
+"classname> e as classes e facilidades dos <firstterm>Objetos Transacionais para "
+"Java</firstterm>. As classes mencionadas neste capítulo são a chave principal para a gravação de aplicativos de falha tolerante usando transações. Desta maneira, após descrevê-las poderemos aplicá-las na construção de um simples aplicativo. As classes a serem descritas neste capítulo podem ser encontradas nos pacotes <classname>com.arjuna.ats.txoj</classname> e <classname>com.arjuna.ats.arjuna</classname>."
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – o mecanismo da transação"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+"Para manter a visualização de objeto orientado, os mecanismos necessários para construção de aplicativos distribuídos confiáveis estão presentes a programadores numa maneira de objeto orientado. Alguns mecanismos precisam ser herdados, por exemplo: o controle de concorrência e o gerenciamento de estado; enquanto outros mecanismos, como o armazenamento de objeto e transações, são implementados como objetos <classname>TxCore</"
+"classname>, dos quais são criados e manipulados como qualquer outro objeto. "
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"Quando o manual falar a respeito do uso de persistência e facilidades de controle de concorrência, ele estará assumindo que as classes dos <emphasis>Objetos Transacionais para Java</"
+"emphasis> (TXOJ) estão sendo utilizadas. Caso este não seja o caso, então o programador é responsável por todos estes assuntos."
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "O <classname>TxCore</classname> ataca as técnicas de objeto orientado de programadores atuais com o equipamento de ferramentas das classes Java, a partir de cada classe de aplicativo que pode ser herdada para a obtenção das propriedades desejadas, assim como persistência e controle de concorrência. Estas classes formam uma hierarquia, parte pela qual é apresentada abaixo e que será descrita adiante neste documento."
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Classe hierárquica TxCore"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr "Além da especificação dos escopos de transação e configuração de bloqueios apropriados com objetos, o programador do aplicativo não possui qualquer outra responsabilidade. O <classname>TxCore</classname> e os <emphasis>Objetos Transacionais para Java</emphasis> (TXOJ) garantem que os objetos transacionais serão registrados e dirigidos pelas transações apropriadas. Os mecanismos de recuperação de travamento são invocados automaticamente num evento de falha."
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "Salvando os estados do objeto"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"O <classname>TxCore</classname> precisa estar apto a lembrar do estado de um objeto por diversos propósitos, incluindo a recuperação (o estado representa o estado antigo do objeto) e persistência (o estado representa o estado final de um objeto na finalização do aplicativo). Uma vez que estes requerimentos possuem funcionalidade comum, eles são implementados usando o mesmo mecanismo: as classes <classname>InputObjectState</classname> e "
+"<classname>OutputObjectState</classname>. As classes mantêm um array interno em instâncias de tipo padrão que podem ser continuamente empacotadas (desempacotadas) usando as operações <command>pack</command> (<command>unpack</"
+"command>) apropriadas. Este buffer é automaticamente redimensionado conforme solicitação, no caso do mesmo possuir espaço insuficiente. As instâncias estão inteiramente armazenadas no buffer de forma padrão (chamada em ordem byte da rede), para fazê-las uma máquina independente. Qualquer outro formato independente de arquitetura (como um XDR ou ASN.1) pode ser implementado simplesmente substituindo as operações com os 1 apropriados, de codificação requerida."
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "O armazenamento do objeto"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "As implementações de persistência podem ser afetadas por restrições impostas pelo Java SecurityManager. Portanto, o armazenamento do objeto fornecido pelo <classname>TxCore</classname> é implementado usando as técnicas de interface/implementação. A distribuição atual possui implementações que gravam os estados do objeto ao banco de dados ou sistema de arquivo local, além de implementações remotas, onde a interface usa um cliente stub (proxy) para os serviços remotos."
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "Os objetos persistentes são identificadores únicos determinados (instâncias de classe Uid), quando criados, e isto é usado para identificá-los com o armazenamento do objeto. Os estados são lidos usando a operação <literal>read_committed</literal> e gravados pelas operações <literal>write_(un)committed</literal>."
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "Recuperação e persistência"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"A classe <classname>StateManager</"
+"classname> encontra-se na raiz da classe hierárquica. Esta classe é responsável pela ativação, desativação e recuperação do objeto. A assinatura simplificada da classe é a seguinte: "
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "Os objetos podem ser classificados em três maneiras diferentes. Eles poderão ser simplesmente recuperáveis. Neste caso, o <classname>StateManager</classname> tentará gerar e manter a informação de recuperação apropriada para o objeto. Tais objetos possuem ciclos de vida que não excedem o programa do aplicativo que os criou. Os objetos podem ser recuperáveis e persistentes, dos quais espera-se que o ciclo de vida do objeto seja maior que o de criação ou aplicativo de acesso. Adicionado isto à sustentação de informação de recuperação do <classname>StateManager</classname>, eles tentarão carregar (descarregar) automaticamente qualquer estado de persistência existente do objeto, chamando a operação de ativação (desativação) em períodos apropriados. E por último, os objetos talvez não possuam nenhuma destas capacidades, e, neste caso, a informação de recuperação nunca será mantida e nem mesmo a tentativa de ativação/desativação auto!
 mática do objeto será realizada.  "
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"Caso um objeto seja recuperável ou recuperável e persistente, então o <classname>StateManager</classname> invocará as operações <command>save_state</command> (enquanto desempenhando <command>deactivate</"
+"command>) e <command>restore_state</command> (enquanto executando a ativação), em diversos pontos durante a execução do aplicativo. Estas operações devem ser implementadas durante a execução do aplicativo. Elas precisam ser implementadas pelo programador uma vez que o <classname>StateManager</"
+"classname> não pode detectar as mudanças de estado a nível do usuário. (Estamos examinando a geração automática das operações <command>save_state</command> e "
+"<command>restore_state</command> padrões, para permitir que o programador substitua isto quando o conhecimento específico do aplicativo possa ser usado, melhorando a eficiência.) Isto dá ao programador a habilidade de decidir quais partes de um estado do objeto deveriam ser construídas persistentes. Por exemplo: para uma planilha não será necessário salvar todas as entradas caso alguns valores possam ser simplesmente re-computados. A implementação <command>save_state</command> para um <classname>Example</classname> de classe, que possui variáveis de membros integrados chamados A, B e C, pode parecer-se com:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 ""
+"Os objetos podem ser classificados em três maneiras diferentes. Eles poderão ser simplesmente <emphasis>recuperáveis</emphasis>. Neste caso, o <classname>StateManager</classname> tentará gerar e manter a informação de recuperação apropriada para o objeto. Tais objetos possuem ciclos de vida que não excedem o programa do aplicativo que os criou. Os objetos podem ser <emphasis>recuperáveis e persistentes</emphasis>, dos quais espera-se que o ciclo de vida do objeto seja maior que o de criação ou aplicativo de acesso. Adicionado isto à sustentação de informação de recuperação do <classname>StateManager</classname>, eles tentarão carregar (descarregar) automaticamente qualquer estado de persistência existente do objeto, chamando a operação de <classname>ativação</classname> (<classname>desativação</"
+"classname>) em períodos apropriados. E por último, os objetos talvez não possuam nenhuma destas capacidades, e, neste caso, a informação de recuperação nunca será mantida e nem mesmo a tentativa de ativação/desativação automática do objeto será realizada. "
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr "Caso um objeto seja <emphasis>recuperável</emphasis> ou <emphasis>recuperável e persistente</emphasis>, então o <classname>StateManager</classname> invocará as operações <command>save_state</command> (enquanto executando a <command>deactivate</command>) e <command>restore_state</command> (enquanto executando <command>activate</command>), em vários pontos durante a execução do aplicativo. Estas operações devem ser implementadas pelo programador uma vez que o <classname>StateManager</classname> não pode detectar as mudanças de estado a nível do usuário. (Estamos examinando a geração automática das operações <classname>save_state</classname> e <classname>restore_state</classname> padrões, para permitir que o programador substitua isto quando o conhecimento do específico aplicativo possa ser usado, melhorando o desempenho.) Isto fornece ao programador a habilidade de decidir quais partes de um estado do objeto devem ser persistentes. Por exemplo: p!
 ara uma planilha talvez não seja necessário salvar todas as entradas, alguns valores poderão simplesmente ser re-computados. A implementação <classname>save_state</classname> para a classe <classname>Example</classname>, que possui variáveis de membros integrados chamados A, B e C, pode parecer-se com:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"É necessário que todos os métodos <command>save_state</command> e <command>restore_state</command> chamem o <classname>super.save_state "
+"</classname> e <classname>super.restore_state</classname>. A intenção disto é prover melhoramentos nos mecanismos de recuperação de travamento. "
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "O ciclo de vida de um Objeto Transacional para Java"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"Espera-se que o objeto de persistência, que não está em uso, mantenha um estado <emphasis>passivo</"
+"emphasis> com seu próprio estado residindo num armazenamento de objeto e <emphasis>ativado</emphasis> sob solicitação. O principal ciclo de vida deste objeto de persistência no <emphasis>TXOJ</emphasis> é demonstrado em <xref linkend="
+"\"figure_2\"/>."
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "O ciclo de vida de um objeto de persistência."
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "O objeto é inicialmente passivo e é armazenado no armazenamento de objeto como uma instância de classe <classname>OutputObjectState</classname>."
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+"O objeto é automaticamente ativado realizando apenas a leitura do armazenamento, quando solicitado por um aplicativo. Tudo isto, usando uma operação <command>read_committed</command> e sendo então convertido a partir de uma instância <classname>InputObjectState</"
+"classname>, dentro de um objeto completado pela operação <command>restore_state</command> do objeto."
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "Uma vez que o aplicativo tenha finalizado com o objeto, ele será desativado convertendo-o de volta a uma instância <classname>OutputObjectState</classname>, usando a operação <command>save_state</command>. Após isto, ele é novamente armazenado no armazenamento do objeto como uma cópia sombra, usando write_uncommitted. Esta cópia sombra pode ser confirmada, substituindo a versão anterior utilizando a operação <command>commit_state</command>. A existência das cópias sombras é normalmente ocultada do programador pelo sistema de transação. Normalmente, a desativação do objeto apenas ocorre quando a transação de nível superior em que o objeto foi ativado confirmar."
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "O objeto de persistência poderá ser ativo e então passivo muitas vezes durante o próprio ciclo de vida. "
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "O controlador de concorrência"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "O controlador de concorrência é implementado pela classe <classname>LockManager</classname> que fornece um comportamento padrão sensível, enquanto permitindo que o programador substituí-la caso considerada necessária pelas semânticas específicas de classe sendo programadas. Assim como o <classname>StateManager</classname> e persistência, as implementações de controle de concorrência são acessadas através das interfaces. Adicionado ao fornecimento de acesso a serviços remotos, as implementações de controle de concorrência disponíveis a interfaces incluem:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "implementação do disco local/banco de dados, onde os bloqueios tornam-se persistentes ao serem gravados ao sistema de arquivo local ou banco de dados."
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "uma implementação puramente local, onde os bloqueios são mantidos com a memória da máquina virtual que os criou. Esta implementação possui um melhor desempenho do que quando gravando bloqueios a discos locais. No entanto, os objetos não podem ser compartilhados entre máquinas virtuais. E, o mais importante, isto é um objeto Java básico sem nenhuma solicitação que pode ser afetada pelo SecurityManager."
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "A interface do programador primário ao controlador de concorrência é feita através da operação setlock. Por padrão, o sistema de rodagem reforça o bloqueamento bifásico seguindo uma leitura múltipla, política de gravação única baseada no objeto. No entanto, conforme demonstrado em <xref linkend=\"figure_1\"/>, é possível que programadores forneçam suas próprias implementações de bloqueio com diferentes regras de conflito de bloqueio com a finalidade de capacitar o <firstterm>controle de concorrência de tipo específico</firstterm>, por herança a partir da classe de <classname>Lock</classname>."
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "A aquisição de bloqueio está sob controle do programador, uma vez que o <classname>StateManager</classname> não pode determinar se uma operação modifica um objeto. O <classname>LockManager</classname> não pode determinar se uma operação solicita uma leitura ou bloqueio de gravação. No entanto, a liberação de bloqueio está sob o controle do sistema e não requer qualquer intervenção por parte do programador. Isto garante que a propriedade bifásica pode ser corretamente mantida."
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"A classe <classname>LockManager</classname> é primeiramente responsável pelas solicitações de gerenciamento para determinar um bloqueio em um objeto ou para liberar um bloqueio conforme seja apropriado. No entanto, uma vez que isto deriva-se de um <classname>StateManager</"
+"classname>, ela pode também controlar quando algumas das facilidades herdadas são invocadas. Por exemplo: o <classname>LockManager</classname> assume que a configuração de um bloqueio de gravação implica que a operação de invocação deve ser referente à modificação do objeto. Isto poderá causar em retorno o salvamento da informação de recuperação, caso o objeto seja recuperável. Similarmente, a aquisição de bloqueio sucedida com êxito causa a invocação da ativação."
+
+#. 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 "O código abaixo apresenta como nós tentaremos obter um bloqueio de gravação num objeto:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "O mecanismo do protocolo de transação"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "O mecanismo de protocolo de transação é representado pela classe <classname>AtomicAction</classname>, que usa o <classname>StateManager</classname> com a finalidade de gravar informações suficientes de mecanismos de recuperação de travamento. Tudo isto, com a finalidade de completar a transação em um evento de falha. Isto possui métodos para inicialização e encerramento da transação, e para situações onde programadores solicitam a implementação dos próprios recursos, existem métodos para registrá-los com a transação atual. Caso a transação seja iniciada com o escopo de uma transação já executada, ela será automaticamente aninhada, baseando-se no fato de que o <emphasis>TxCore</emphasis> suporta sub-transações."
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "O <emphasis>TxCore</emphasis> está ciente da multi-segmentação, permitindo que cada segmento de um aplicativo compartilhe uma transação ou execute-a em sua própria transação. Portanto, todas as classes são também segmentadas com segurança."
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "O simples exemplo abaixo ilustra as relações entra a ativação, encerramento e confirmação:"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "A execução dos códigos acima envolve a seguinte seqüência de atividades: "
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"A criação de bindings para objetos de persistência. Isto pode envolver a criação de objetos stub e uma chamada de objetos remotos. No exemplo acima, nós usamos novamente o binding para um objeto de persistência existente identificado pelo <literal>Name-A</"
+"literal>, além de um novo objeto de persistência. O sistema de nomeação para objetos remotos mantém o mapeamento entre nomes de objetos e localizações. Você poderá encontrar maiores informações referentes a esta questão nos capítulos seguintes."
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "Inicialização da transação atômica."
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "As invocações de operação. Como parte de uma invocação dada, a implementação do objeto é responsável em garantir que isto está bloqueado na leitura ou gravação do modo (assumindo que não há conflito no bloqueamento). E, se necessário inicializada com o último estado confirmado a partir de um armazenamento do objeto. A primeira vez que um bloqueio é adquirido num objeto dentro de uma transação, o estado do objeto é adquirido, se possível, a partir do armazenamento do objeto."
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "Confirmação da ação de nível superior. Isto inclui a atualização do estado de qualquer objeto modificado num armazenamento de objeto."
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "Quebra de bindings criadas anteriormente."
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "A classe hierárquica"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+"As classes principais que constituem a classe hierárquica do <emphasis>TxCore</"
+"emphasis> são descritas abaixo:"
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"Os programadores dos aplicativos de falha de tolerância serão primeiramente concedidos com as classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"e <classname>AtomicAction</classname>. Outras classes importantes para um programador são o <classname>Uid</classname> e <classname>ObjectState</classname>. A maioria das classes são derivadas da classe base de <classname>StateManager</classname>, que fornece facilidades primitivas necessárias para o gerenciamento de objetos de recuperação e persistência. Estas facilidades incluem o suporte para a ativação e desativação dos objetos e recuperação do objeto de estado baseado. A classe <classname>LockManager</"
+"classname> usa facilidades do <classname>StateManager</classname> e "
+"<classname>Lock</classname> para fornecer o controle atual (bloqueamento bifásico na implementação atual) solicitado para a implementação da propriedade serializada de ações atômicas. A implementação de facilidades de ação atômica é suportada pela <classname>AtomicAction</classname> e "
+"<classname>TopLevelTransaction</classname>."
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+"A maioria das classes de sistema são derivadas a partir da classe de base de <classname>StateManager</classname>, da qual fornece facilidades primitivas necessárias para o gerenciamento de objetos de persistência e recuperação. Estas facilidades incluem o suporte de ativação e desativação dos objetos e recuperação do objeto de estado baseado. A classe <classname>LockManager</"
+"classname> usa as facilidades do <classname>StateManager</classname> e fornece o controle de concorrência requerido pela implementação da propriedade serializada de ações atômicas."
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"Considere um simples exemplo. Assuma que o <classname>Example</classname> é uma classe de persistência do usuário definido derivada de um <classname>LockManager</classname>. Um aplicativo contendo um Trans de transação atômica acessa um objeto (chamado 0) de tipo de <classname>Example</"
+"classname>: Tudo isto, pela invocação da operação op1, que envolve mudanças de estado para 0. A propriedade de serialização requer que um bloqueio de gravação deve ser adquirido em 0, antes disto ser modificado. Desta forma, o corpo do op1 deverá conter uma chamada para a operação <literal>setlock</literal> de controlador de concorrência:"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr "A operação <literal>setlock</literal> fornecida pela classe <classname>LockManager</classname> fornece as seguintes funções nesta situação:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "Verifiqua a compatibilidade de bloqueio de gravação com os bloqueios retidos no momento, e se permitido:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"Chama a ativação da operação <classname>StateManager</classname> que carregará, caso ainda não tenha sido carregado, o último estado de persistência 0 a partir do armazenamento do objeto. E, então chama a operação <classname>StateManager</classname> modificada que possui efeito de criação de uma instância de <classname>RecoveryRecord</classname> ou <classname>PersistenceRecord</"
+"classname> para 0, dependendo se 0 era persistente ou não (o Bloqueio é um bloqueio <literal>WRITE</literal>, então o estado antigo do objeto deve ser mantido antecipadamente à modificação). Além disso, insere isto numa <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 "Cria e insire uma instância LockRecord no RecordList da Trans."
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"Vamos supor que a ação <literal>Trans</literal> foi abortada em algum momento após o bloqueio ter sido adquirido. Então, a operação de reversão da <classname>AtomicAction</classname> processará a instância de <classname>RecordList</"
+"classname> associada com <literal>Trans</literal>, pela invocação numa operação <literal>Abort</literal> apropriada em várias gravações. A implementação desta operação pela classe <classname>LockRecord</classname> irá liberar o bloqueio <literal>WRITE</literal> enquanto que o <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> restaurará o estado prévio do 0."
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr "É importante perceber que todos os trabalhos acima são automaticamente executados pelo <emphasis>TxCore</emphasis>, em nome do programador do aplicativo. O programador precisa apenas inicializar a transação e definir um bloqueio apropriado. O <emphasis>TxCore</emphasis> e os <emphasis>Objetos Transacionais para Java</emphasis> cuidam do registro do participante, persistência, controle de concorrência e recuperação."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1758 @@
+# translation of Chapter_02.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 11:22+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "Usando TxCore "
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr "Neste seção descreveremos em mais detalhes o <emphasis>TxCore</emphasis> e os <emphasis>Objetos Transacionais para Java</emphasis>, além de demonstrar como isto pode ser utilizado para construir aplicativos transacionais."
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "Gerenciamento de estado"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "Estados do Objeto"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"O <emphasis>TxCore</emphasis> precisa estar apto a relembrar o estado de um objeto por inúmeros propósitos, incluindo a recuperação (o estado representa algum estado passado do objeto), e para a persistência (o estado representa o estado final de um objeto no término do aplicativo). Uma vez que todos estes requerimentos solicitam funcionalidade comum, eles são implementados usando o mesmo mecanismo - as classes <classname>Input/OutputObjectState</classname> "
+"e <classname>Input/OutputBuffer</classname>. "
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"A classe <classname>Input/OutputBuffer</classname> mantém um array interno da instância de tipos de Java padrão da qual pode ser continuamente empacotada (desempacotada) usando as operações de empacotar (desempacotar). Este buffer é automaticamente remodelado em caso dele possuir espaço insuficiente. As instâncias estão todas armazenadas no buffer de forma padrão (então chamadas network "
+"byte order) com a finalidade de fazê-las trabalhar independemente. "
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+"A classe <classname>Input/OutputObjectState</classname> fornece toda a funcionalidade do <classname>Input/OutputBuffer</classname> (através da herança), mas adiciona duas variáveis da instância extras, das quais significam o Uid e tipo de objeto para cada instância <classname>Input/OutputObjectState</"
+"classname>, sendo que esta é uma imagem compacta. Isto é usado quando acessando o armazenamento do objeto durante o armazenamento e recuperação do estado do objeto."
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "O armazenamento do objeto"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 "O armazenamento do objeto fornecido com <emphasis>TxCore</emphasis> possui deliberadamente uma interface correta restringida, da qual pode ser implementada em diversas maneiras. Por exemplo, os armazenamentos do objeto estão implementados na memória compartilhada; no sistema de arquivo Unix (em muitas maneiras diferentes) e como um armazenamento remoto acessível. Você poderá encontrar no Apêndice informações mais completas referentes à disponibilidade de armazenamentos de objetos em <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 "Assim como todas as classes <emphasis>TxCore</emphasis>, os armazenamentos de objeto padrões são implementações Java pura. É necessário usar métodos nativos para o acesso à memória compartilhada e outras implementações de armazenamento de objeto complexo."
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"Todos os armazenamentos do objeto retêm e recuperam instâncias das classes <classname>Input/OutputObjectState</classname>. Estas instâncias são nomeadas pela Uid e Type de Objeto que as mesmas representam. Os estados são lidos usando a operação <command>read_committed</command> e gravados pelo sistema usando a operação <command>write_uncommitted</command>. Sob operação normal, os estados de objetos novos não substituem estados de objetos antigos, mas são gravados pelo armazenamento como cópias ocultas. Estas cópias ocultas substituem as originais apenas quando a operação <command>commit_state</command> for invocada. Normalmente, toda a interação com o armazenamento do objeto é executada pelos componentes de sistema <emphasis>TxCore</"
+"emphasis> como apropriada, assim como a existência de qualquer versão oculta de objetos no armazenamento está oculta ao programador."
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"Quando o objeto transacional for executado, é necessário que ele efetue certas mudanças do estado persistente de forma que isto possa ser recuperado num evento de uma falha e também continue a execução ou reversão. Quando usando os <emphasis>Objetos Transacionais para Java</emphasis>, o <emphasis>TxCore</"
+"emphasis>  irá cuidar disto automaticamente. Para garantir as propriedades ACID, estas mudanças de estado devem ser esvaziadas para a implementação de armazenamento persistente, antes que a transação possa proceder para a execução. Caso elas não sejam esvaziadas, o aplicativo assumirá que a transação foi executada quando de fato as mudanças de estado ainda estiverem residindo com um cache de sistema de operação, além de poder ocorrer o perdido de falha do sistema subseqüentemente. Por padrão, o <emphasis>TxCore</emphasis> garante que tais mudanças de estado foram esvaziadas. No entanto, esta tarefa pode impor uma penalidade de desempenho significante no aplicativo. Para prevenir o esvaziamento do estado do objeto transacional, configure a variável <literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> para OFF."
+
+#. Tag: title
+#: Chapter_02.xml:74
+#, no-c-format
+msgid "Selecting an object store implementation"
+msgstr "Selecionando uma implementação de armazenamento de objeto"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"O <emphasis>TxCore</emphasis> vem com suporte para diversas implementações de armazenamento de objeto diferenciadas. O apêndice descreve estas implementações como selecionar e configurar uma implementação fornecida (usando a variável da propriedade <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal>) baseando-se no objeto, além de indicar como implementações adicionais podem ser fornecidas."
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr "A classe <emphasis>TxCore</emphasis> <classname>StateManager</classname> gerencia o estado de um objeto e fornece todo mecanismo de suporte básico solicitado por um objeto para o propósito de gerenciamento de estado. O <classname>StateManager</classname> é responsável por criar e registrar os recursos apropriados relacionados com a persistência e recuperação do objeto transacional. Caso a transação seja aninhada, então o <classname>StateManager</classname> irá também propagar estes recursos entre transações child e seus parents no período de execução."
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 "Os objetos em <emphasis>TxCore</emphasis> são indicados como três possíveis classificações básicas. Eles poderão ser simplesmente recuperáveis, neste caso o <classname>StateManager</classname> tentará gerar e manter a informação de recuperação apropriada para o objeto (como as instâncias da classe <classname>Input/OutputObjectState</classname>). Estes determinados objetos possuem um ciclo de vida que não excede o programa do aplicativo que os cria. Os objetos poderão ser recuperáveis e persistentes, neste caso o tempo de vida do objeto é presumido como maior do que daquele de criação ou de acesso de aplicativo. Adicionado a informação de recuperação mantida, o <classname>StateManager</classname> tentará carregar (descarregar) automaticamente qualquer estado de persistência existente para o objeto chamando a operação <command>activate</command> (<command>deactivate</command>) em períodos apropriados. Finalmente, os objetos talvez não pos!
 suam nenhuma destas capacidades. Neste caso, nenhuma informação de recuperação é mantida nem mesmo uma tentativa de ativação/desativação do objeto automaticamente. Esta propriedade do objeto é selecionada no período de construção do objeto e não pode ser modificada desde então. Dessa forma, um objeto não pode ganhar (ou perder) capacidades de recuperação em algum ponto arbitrário durante o próprio ciclo de vida. "
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+"Caso um objeto seja recuperado (ou persistente) então o <classname>StateManager</"
+"classname> invocará as operações <command>save_state</command> (enquanto executando a <command>deactivation</command>), <command>restore_state</"
+"command> (enquanto executando a ativação) e tipo em vários pontos durante a execução do aplicativo. Estas operações devem ser implementadas pelo programador uma vez que o <classname>StateManager</classname> não possui acesso a descrição de execução do layout de um objeto Java arbitrário em memória. Desta forma, ele não pode implementar a política padrão para conversão da versão de memória do objeto à sua própria forma passiva. No entanto, as capacidades fornecidas pelo <classname>Input/OutputObjectState</classname> fazem a gravação destas rotinas bastante simples. Por exemplo, a implementação <command>save_state</"
+"command> para a classe <classname>Example</classname> possuía as variáveis de membro chamadas A, B e C e poderia parecer-se com o seguinte:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+"Com a finalidade de suportar a recuperação de travamento para objetos de persistência, é necessário que todos <command>save_state</command> e métodos <command>restore_state</command> de objetos do usuário chamem o <command>super.save_state</command> e o "
+"<command>super.restore_state</command>."
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "O método tipo é usado para determinar a localização no armazenamento do objeto onde o estado das instâncias daquela classe serão salvas e por fim restauradas. Na realidade, isto pode ser qualquer seqüência válida. No entanto, você deverá evitar o uso do caracter (#), pois ele é reservado para diretórios especiais que solicitam o <emphasis>TxCore</emphasis>."
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+"A operação <command>get_uid</command> do <classname>StateManager</"
+"classname> fornece apenas o acesso de leitura para um nome do sistema interno do objeto para qualquer que seja o propósito que o programador pretenda solicitar (como inscrição do nome em um servidor de nome). O valor do nome de sistema interno pode apenas ser configurado quando um objeto é inicialmente construído - tanto pela provisão de um parâmetro explícito ou pela geração de um novo identificador, uma vez que o objeto for criado."
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "O método <command>destroy</command> pode ser usado para remover o estado do objeto a partir do armazenamento do objeto. Esta é uma operação anatômica, e portanto removerá apenas o estado se a transação de nível superior com que ela foi invocada eventualmente confirmar. O programador deve obter um acesso exclusivo ao objeto prévio para a invocação desta operação."
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "Desde que a persistência e recuperação do objeto possuam solicitações complementares (a única diferença está onde a informação de estado é armazenada e qual é sua finalidade), o <classname>StateManager</classname> efetivamente combina o gerenciamento destas duas propriedades dentro de um mecanismo único. Quer dizer, ele usa a instância de ambas as classes Input/OutputObjectState para fins de recuperação e persistência. Uma discussão adicional passada ao <command>save_state</command> e operações <command>restore_state</command> permite o programador determinar o propósito pelo qual qualquer invocação dada está sendo feita, assim como permitir que informações diferentes sejam salvas para os propósitos de recuperação e persistência."
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "Modelos de Objeto"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "O <emphasis>TxCore</emphasis> suporta dois modelos para objetos, pelos quais apresentaremos de fato, como um estado de objetos e controle atual são implementados: "
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>: apenas uma única cópia de objeto existe no aplicativo. Isto irá residir com um único JVM e todos os clientes deverão endereçar suas invocações a este servidor. Este modelo fornece um melhor desempenho, mas representa um único ponto de falha. E, caso ele se encontre em um ambiente multi-segmentado, ele talvez não proteja o objeto de corromper-se, caso um segmento único falhar."
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Modelo do Objeto Único"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE: logicamente uma instância única do objeto existe, porém estas cópias estão distribuídas através de diferentes JVMs. O desempenho deste modelo é pior do que um modelo único, porém isto fornece melhor isolação de falha."
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Modelo do Objeto Múltiplo"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"O modelo padrão é SINGLE. O programador pode substituí-lo baseando-se no objeto, apenas fornecendo uma instância apropriada da classe <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname>, na construção do objeto."
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "O modelo pode ser mudado entre cada instanciação sucessiva do objeto. Por exemplo: isto não precisa ser o mesmo durante o ciclo de vida do objeto."
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr "Para fornecer uma classe <classname>ObjectName</classname> adequada, é necessário executar os seguintes passos:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "criar uma nova instância do <classname>ObjectName</classname>."
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"configurar o atributo do modelo do objeto usando o nome <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal>"
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "Por exemplo:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "Sumário"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"Em resumo, a classe <emphasis>TxCore</emphasis> gerencia o estado de um objeto e fornece os mecanismos de suporte básicos por um objeto, para fins de gerenciamento de estado. Algumas operações devem ser definidas pelo desenvolvedor de classe. Estas operações são: <command>save_state</command>, <command>restore_state</command>, e "
+"<command>type</command>."
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"Invocado a qualquer instante em que o estado de um objeto precisa ser salvo para um uso futuro - primeiramente para fins de recuperação e persistência. O parâmetro <literal>ObjectType</literal> indica a razão pela qual o <command>save_state</command> foi invocado pelo <emphasis>TxCore</emphasis>. Isto permite que o programador salve pedaços diferentes de informação dentro do objeto <classname>OutputObjectState</classname> fornecido como primeiro parâmetro, baseando-se na necessidade ou não do estado, para fins de recuperação e persistência. Por exemplo, os ponteiros de outros objetos <emphasis>TxCore</emphasis> poderão ser salvos para fins de recuperação, mas como Uid para fins de persistência. Conforme apresentado anteriormente, a classe <classname>OutputObjectState</"
+"classname> fornece operações convenientes para permitir que as instâncias sejam salvas em todos os tipos básicos de Java. É necessário que todos os métodos <command>save_state</"
+"command> chamem o <command>super.save_state</command>, com a finalidade de suportar a recuperação de travamento para objetos de persistência. "
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "O <command>save_state</command> assume que um objeto é internamente consistente e que todas as variáveis salvas possuem valores válidos. Isto é responsabilidade do programador garantir que esta situação aconteça."
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType) "
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 "Invocado a qualquer instante em que o estado de um objeto precisa ser restaurado para aquele fornecido. O segundo parâmetro permite interpretações diferentes do estado fornecido. É necessário que todos os métodos <command>restore_state</command> chamem <command>super.restore_state</command>, com o objetivo de suportar a recuperação de travamento para objetos de persistências."
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "String type ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"O mecanismo de persistência <emphasis>TxCore</emphasis> solicita um meio para determinar o tipo de um objeto, assim como uma seqüência para que ele possa salvar/restaurar o estado do objeto para/do armazenamento do objeto. Por tratado, esta informação indica a posição da classe de hierarquia. Por exemplo, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "Considere a seguinte classe <classname>Array</classname> básica, derivada da classe <classname>StateManager</classname> (neste exemplo, com o objetivo de ilustrar a restauração e o procedimento para salvar um estado de objeto, a variável highestIndex é usada para supervisionar o maior elemento do array, do qual possui um valor diferente de zero):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr "O <command>save_state</command>, <command>restore_state</command> e operações <command>type</command> podem ser definidos como segue a seguir:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "Gerenciamento de bloqueio e controle atual"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 "A informação de controle atual com o <emphasis>TxCore</emphasis> é mantida pelos bloqueios. Os bloqueios, que são solicitados a compartilharem-se entre objetos em processos diferentes, poderão ser mantidos com o armazenamento de bloqueio, similarmente à facilidade de armazenamento de objeto apresentada anteriormente. O armazenamento de bloqueio fornecido com o <emphasis>TxCore</emphasis> possui deliberadamente uma interface correta restringida, de maneira que isto pode ser implementada numa porção de diferentes maneiras. Por exemplo, os armazenamentos de bloqueio são implementados numa memória compartilhada, no sistema de arquivo Unix (em muitas formas diferentes) e como um armazenamento acessível remoto. Para maiores informações a respeito dos armazenamentos de objeto disponíveis no <emphasis>TxCore</emphasis>, por favor dirija-se ao Apêndice."
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "Assim como todas as classes <emphasis>TxCore</emphasis>, os armazenamentos de bloqueio padrões são pura implementação Java. É necessário usar métodos nativos para acessar a memória compartilhada e outras mais complexas."
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "Selecionando uma implementação de armazenamento de bloqueio"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"O <emphasis>TxCore</emphasis> vem acompanhado de suporte para diversas implementações de armazenamento de objeto. Caso um modelo de objeto seja usado como SINGLE, não haverá solicitação do armazenamento de bloqueio para manter os bloqueios, uma vez que o objeto não é exportado. No entanto, caso o modelo MULTIPLE seja usado, diferentes ambientes de rodagem (processo, máquinas virtuais Java) provavelmente precisarão compartilhar a informação de controle atual. O tipo de implementação do armazenamento de bloqueio para uso pode ser especificada para todos os objetos com um ambiente de execução, usando a variável de propriedade <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal>. Atualmente, isto pode ter um dos seguintes valores:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "Isto é uma implementação que, pelo padrão, não permite o compartilhamento de informação armazenada entre ambientes de execução. O programador do aplicativo é responsável pelo compartilhamento da informação de armazenamento."
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"Esta é a implementação padrão e armazena informação de bloqueamentos armazenados no sistema de arquivo local. Desta forma, os ambientes de execução que dividem o mesmo armazenamento de arquivo podem compartilhar a informação de controle atual. A raiz do sistema de arquivo em que a informação de bloqueamento é gravada, é o diretório <filename>LockStore</"
+"filename> com o diretório de instalação <emphasis>TxCore</emphasis>. Isto pode ser substituído no período de execução configurando a variável de propriedade <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> ou estabelecendo a localização com a <literal>CLASSPATH</literal>:"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>ou</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "Caso nenhuma destas abordagens sejam tomadas, a localização padrão estará no mesmo nível do diretório <filename>etc</filename> da instalação."
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 "O controlador atual é implementado pela classe <classname>LockManager</classname>, da qual fornece um comportamento padrão concreto enquanto permitindo que o programador substitua a mesma, caso isto seja considerado necessário pela semântica particular da classe sendo programada. A interface do programador primária para o controlador atual é feita através da operação setlock. Por padrão, o sistema de execução <emphasis>TxCore</emphasis> reforça o bloqueamento bifásico total seguindo uma leitura múltipla, política de leitura múltipla baseado por objeto. A aquisição do bloqueio está sob controle do programador, uma vez que o <classname>StateManager</classname> não pode determinar se uma operação modifica um objeto. O <classname>LockManager</classname> não pode determinar se uma operação solicita um bloqueio de leitura e gravação. No entanto, a liberação de bloqueio está normalmente sob controle do sistema e não requer futura intervençÃ!
 £o por parte do programador. Isto significa que a propriedade bifásica pode ser corretamente mantida."
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"A classe <classname>LockManager</classname> é primeiramente responsável pelas solicitações gerenciadas para configurar um bloqueio ou para liberar um bloqueio conforme apropriado. No entanto, uma vez que ela é derivada de um <classname>StateManager</"
+"classname>, ela pode também controlar quando algumas das facilidades hierárquicas são invocadas. Por exemplo, caso uma solicitação de determinação de bloqueio de gravação seja concedida, o <classname>LockManager</classname> invocará a determinação diretamente modificada, da qual a configuração de um bloqueio de gravação implica que a operação de invocação deve ser referente a modificação do objeto. Isto poderá resultar no salvamento de informação de recuperação, caso o objeto seja recuperado. Num processo parecido, a aquisição de bloqueio com êxito causa a invocação do <command>activate</command>."
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"Portanto, o <classname>LockManager</classname> é diretamente responsável pelos objetos de persistência de ativação/desativação e registro de <classname>Resources</classname> para gerenciamento de controle local. Caso conduzirmos a classe <classname>StateManager</classname>, isto será também responsável pelo registro de <classname>Resources</classname>, para manipulação de estado de recuperação/persistência e recuperação de objeto. O programador do aplicativo simplesmente determina os bloqueios apropriados e finaliza as transações. Além disso, ele estende o <command>save_state</command> e métodos <command>restore_state</"
+"command> do <classname>StateManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "A operação <command>setlock</command> deve ser parametrizada com o tipo de bloqueamento solicitado (<literal>READ</literal> / <literal>WRITE</literal>), e o número de entradas para adquirir o bloqueamento antes da desistência. Caso um conflito de bloqueio ocorrer, um dos seguintes cenários tomarão espaço:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"Caso o valor de entrada seja igual ao <literal>LockManager.waitTotalTimeout</"
+"literal>, a seqüência que chama o <command>setlock</command> será bloqueada até que o bloqueio seja liberado ou o tempo total especificado tenha sido transcorrido. Neste caso, o <literal>REFUSED</literal> será retornado."
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+"Caso o bloqueio não possa ser obtido imediatamente, o <classname>LockManager</"
+"classname> tentará um número específico de entradas, esperando pelo valor de tempo especificado entra cada tentativa de falha. O padrão é de 100 tentativas, sendo cada tentativa separada por 0.25 segundos de espera. O tempo entre entradas é especificado em micro-segundos."
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "Caso ocorra um conflito de bloqueio, a implementação atual simplesmente concederá um intervalo às solicitações de bloqueio, prevenindo desta forma congelamentos, ao invés de fornecer um esquema completo de detenção de congelamento. Caso o bloqueio solicitado seja obtido, a operação setlock retornará o valor <literal>GRANTED</literal>. Do contrário, o valor <literal>REFUSED</literal> será retornado. É responsabilidade do programador garantir que o restante do código para uma operação seja apenas executada se uma solicitação de bloqueio for concedida. Segue abaixo exemplos do uso da operação <command>setlock</command>. "
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "O mecanismo de controle atual é integrado ao mecanismo de ação atômica, assim como a garantia de que os bloqueios estão concedidos numa informação apropriada do objeto. Esta é registrada com a ação atômica de execução atual, da qual os bloqueios são liberados no tempo correto. Isto isenta o programador da carga de liberação explícita de quaisquer bloqueios adquiridos, caso eles fossem adquiridos com ações atômicas. No entanto, se os bloqueios forem adquiridos num objeto <emphasis>fora</emphasis> do escopo de uma ação atômica, será responsabilidade do programador liberar os bloqueios quando solicitados, usando a operação <command>releaselock</command> correspondente."
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "Política de bloqueamento"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"Diferente de muitos outros sistemas, os bloqueios em <emphasis>TxCore</emphasis> não são tipos de sistemas especiais. Ao invés disso, eles são instâncias simples de outros objetos <emphasis>TxCore</emphasis> (a classe <classname>Lock</classname> que é também derivada do <classname>StateManager</classname>. Sendo assim, os bloqueios podem ser persistentes caso solicitado e podem também ser nomeados de maneira simples). Adicionado a isto, o <classname>LockManager</classname> não possui conhecimento de semânticas da política atual pelas solicitações de bloqueio que são concedidas. Tal informação é mantida pelas instâncias de classe <classname>Lock</"
+"classname> atual que fornece operações (a operação <literal>conflictsWith</literal>) pelas quais o <classname>LockManager</"
+"classname> pode determinar se dois bloqueios se conflitam ou não. Esta separação é importante uma vez que isto permite que o programador derive novos tipos de bloqueio, a partir da classe <classname>Lock</classname> básica e fornecendo definições apropriadas dos níveis de aumento das operações de conflito, que possam ser possível com a concorrência. "
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"A classe <classname>Lock</classname> fornece uma operação <command>modifiesObject</"
+"command>, da qual o <classname>LockManager</classname> usa para determinar se a concessão desta solicitação de bloqueio requer uma chamada de modificação. Esta operação é fornecida para que os modos de bloqueamento, diferentes de simplesmente ler e escrever, possam ser suportados. A classe de <classname>Lock</classname> fornecida suporta a política de gravação única/leitura múltipla tradicional. "
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "Construção e destruição do objeto"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "Lembre-se que os objetos <emphasis>TxCore</emphasis> podem ser recuperáveis, recuperáveis e persistentes, ou nenhuma destas opções. Além disso, cada objeto possui um nome interno único. Estes atributos podem ser apenas determinados quando o objeto for construído. Desta forma, o <classname>LockManager</classname> fornece dois construtores protegidos para o uso pelas classes derivadas, sendo que cada um deles cumpre um propósito distinto:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "Este construtor permite a criação de novos objetos, quer dizer, não há estado prévio assumido para existir."
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 "Conforme visto anteriormente, este construtor permite que a criação de novos objetos, dos quais são presumidos a não possuir um estado prévio. O parâmetro <literal>ObjectType</literal> determina se é que um objeto é recuperável (indicado pelo <literal>RECOVERABLE</literal>), recuperável e persistente (indicado pelo <literal>ANDPERSISTENT</literal>) ou nenhum dos dois (<literal>NEITHER</literal>). Caso um objeto seja marcado como persistente, o estado do objeto será armazenado em um dos armazenamentos do objeto. O parâmetro compartilhado apenas possui significado se for <literal>RECOVERABLE</literal>. Caso o <literal>attr</literal> não for nulo e o modelo do objeto for <literal>SINGLE</literal> (comportamento padrão), o estado recuperável do objeto será mantido com o próprio objeto (por exemplo: ele não possui representação externa). Do contrário, um armazenamento do objeto (volátil) em memória é usado para armazenar o estado do objeto entre a!
 ções atômicas."
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "Os construtores para objetos de persistência nova devem usar ações atômicas entre os mesmos. Isto garantirá que o estado do objeto é automaticamente gravado ao armazenamento do objeto, tanto quando a ação no construtor confirmar ou se uma ação incluída existir, quando a ação de nível superior apropriada for confirmada. Outros exemplos neste tópico irão ilustrar este ponto mais a fundo. "
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 "Este construtor permite o acesso a um objeto persistente existente, do qual o nome é dado pelo parâmetro <literal>objUid</literal>. Os objetos construídos usando esta operação terão normalmente seus estados prévios carregados (identificados pelo <literal>objUid</literal>), a partir de um armazenamento automatizado pelo sistema."
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "Conforme visto anteriormente, este construtor permite o acesso a um objeto de persistência existente, em que o nome interno é dado pelo parâmetro <literal>objUid</literal>. Os objetos construídos usando esta operação irão normalmente possuir seus estados prévios carregados (identificados pelo <literal>objUid</literal>), a partir de um armazenamento do objeto automatizado pelo sistema. Caso o parâmetro attr não seja nulo, e o modelo do objeto for <literal>SINGLE</literal> (o comportamento padrão), então o objeto não será reativado no início de cada transação de nível superior."
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "O destruidor de uma classe de programador definida deve invocar o término da invocação terminada para informar o mecanismo gerenciador de estado que o objeto está prestes a ser destruído, do contrário resultados imprevisíveis poderão ocorrer. "
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"Uma vez que o <classname>LockManager</classname> é herdado a partir do <classname>StateManager</classname>, ele passará qualquer instância à classe <classname>StateManager</"
+"classname>. Assim como, é possível configurar o modelo do objeto <classname>StateManager</classname> como descrito anteriormente."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,698 @@
+# translation of Chapter_03.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 14:14+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "Questões Gerais de Transação"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "Questões avançadas de transações com TxCore"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "As ações atômicas (transações) podem ser usadas por ambos programadores de aplicativo e desenvolvedores de classe. Assim como, as operações completas (ou partes das operações) podem ser atômicas, conforme solicitado pelas semânticas de uma operação particular. Este capítulo descreverá algumas das questões mais fúteis envolvidas usando transações em geral e o <emphasis>TxCore</emphasis> em particular."
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "Transações de checagem"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"Num aplicativo multi-segmentado, os segmentos múltiplos podem ser associados com uma transação durante o próprio ciclo de vida, por exemplo: o compartilhamento do segmento do contexto. Além disso, é possível que um segmento encerre uma transação, enquanto outros segmentos estiverem ativos com a mesma. Num ambiente distribuído, pode ser difícil garantir que todos os segmentos tenham encerrado com uma transação, no momento em que ela for encerrada. Por padrão, o <emphasis>TxCore</emphasis> emitirá um aviso caso um segmento tentar encerrar uma transação enquanto outras transações estiverem ainda ativadas com isto. No entanto, isto permitirá que o encerramento da transação continue. Outras soluções a este problema são possíveis, por exemplo: o bloqueamento do segmento que está encerrando a transação até que outros segmentos tenham se dissociado do contexto de transação. Portanto, o <emphasis>TxCore</emphasis> fornece a classe <classname>com.arju!
 na.ats.arjuna."
+"coordinator.CheckedAction</classname> que permite que a política de finalização do segmento/transação seja substituída. Cada transação possui uma instância de classe associada com isto, e os programadores do aplicativo podem fornecer as próprias implementações por cada transação."
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "Quando um segmento tentar encerrar a transação e houver segmentos ativos com o mesmo, o sistema invocará o método de checagem no objeto <classname>CheckedAction</classname> de transação. Os parâmetros para o método de checagem são os seguintes: "
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "Indica se é que a transação está no processo de confirmação ou reversão."
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "O identificador de transação."
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "Indica uma lista de todos os segmentos atuais marcados como ativos nesta transação."
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "Quando a checagem retornar, o término da transação continuará. Certamente, o estado da transação neste ponto pode ser diferente daquele quando a checagem foi chamada. Por exemplo: a transação poderá, subseqüentemente, ter sido confirmada."
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "Estatísticas obtidas"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr ""
+"Por padrão, o JBossTS não mantém qualquer informação do histórico sobre as transações. No entanto, pela configuração a variável da propriedade <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> está para YES. O serviço de transação manterá informações a respeito do número de transações criadas e seus resultados. Esta informação pode ser obtida durante a execução de uma aplicativo transacional, através da classe <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname>:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Last resource commit optimisation"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr ""
+"Em alguns casos pode ser necessário inscrever participantes que não estejam cientes da transação de confirmação bifásica. Caso haja apenas um único recurso, então não há necessidade para a confirmação bifásica. No entanto, e se houver recursos múltiplos na transação? Neste caso, o Last "
+"Resource Commit optimization - LRCO (Otimização de Confirmação do Último Recurso) entrará em função. É possível que um único recurso que esteja ciente da monofase (por exemplo; poderá apenas efetuar a confirmação ou reversão sem nenhuma preparação), se inscreva em uma transação com recursos cientes de confirmação bifásica. O coordenador trata os recursos cientes da monofase de maneira diferenciada, da qual executa a fase de preparação em todos os demais recursos primeiramente. E, caso isto então pretenda confirmar a transação, ele passará o controle ao recurso ciente da monofase. Se isto for confirmado, então o coordenador fará a decisão de confirmação e tentativa de confirmação em outros recursos também. "
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr ""
+"Para que se possa utilizar o LRCO, seu participante deve implementar a interface <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> e registrar-se na transação através do <command>BasicAction</"
+"command>.add operation. Uma vez que esta operação espera por instâncias do <classname>AbstractRecord</classname>, você deve criar uma instância <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> e ceder seu participante como parâmetro construtor, conforme apresentado abaixo:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "Transações aninhadas"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr "Não existem construções especiais para aninhamento das transações: caso uma ação seja iniciada enquanto outra ação é rodada, então esta será automaticamente aninhada. Isto permite que uma estrutura modular para aplicativos, onde objetos podem ser implementados usando ações atômicas com suas próprias operações. Tudo isto, sem que o programador do aplicativo tenha que preocupar-se com os aplicativos que os usam. Por exemplo: se os os aplicativos usarem ou não as ações atômicas também. Desta forma, em algumas ações de aplicativos elas poderão ser de nível superior, enquanto que em outras elas podem ser aninhadas. Os objetos gravados desta maneira podem então ser compartilhados entre programadores de aplicativos e o <emphasis>TxCore</emphasis> garantirá suas consistências."
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "Caso uma ação aninhada seja abortada, então todos os seus trabalhados serão desfeitos ainda que os meios de bloqueamento bifásico estritos, obtidos por qualquer bloqueio, sejam retidos até a confirmação ou aborto da ação de nível superior. Caso uma ação aninhada seja confirmada, então o trabalho que a mesma tenha desempenhado será apenas confirmado pelo sistema se a ação de nível superior for confirmada. E, caso a ação de nível superior seja abortada, então todo o trabalho será desfeito. "
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "A confirmação ou aborto de uma ação aninhada não atinge diretamente o resultado de uma ação com que ela está aninhada. Isto é um aplicativo dependente e permite um programador estruturar ações atômicas para conter falhas, trabalho desfeito, etc."
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "Confirmação assíncrona de uma transação"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "Por padrão, o JBossTS executa o protocolo de confirmação de uma transação de nível superior numa maneira síncrona. Por exemplo; será dito a todos recursos registrados para preparar em ordem do segmento único, e então será pedido para que eles efetuem a confirmação ou reversão. Isto possui diversas desvantagens: "
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "No caso de muitos recursos registrados, a operação de preparação pode logicamente ser invocada em paralelo com outro recurso. A desvantagem é que se um recurso “adiantado” na lista de recurso registrado força uma reversão durante o preparo, possivelmente muitas operações de preparo serão feitas sem necessidade."
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "No caso em que uma reportagem heurística não é solicitada pelo aplicativo, a segunda fase do protocolo de confirmação pode ser feito de maneira assíncrona, uma vez que seu sucesso ou falha não tenham importância."
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"Portanto, o <emphasis>JBossTS</emphasis> fornece opções de execução para ativar possíveis otimizações de segmentação. Pela configuração, a variável do ambiente <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> está para <literal>YES</literal>, durante a fase de preparo que um segmento separado criará para cada participante na transação. Se configurarmos <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> para <literal>YES</literal>, um segmento separado será criado para complementar a segunda fase da transação caso o conhecimento sobre os resultados heurísticos não forem solicitados."
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "Transações de nível superior independente"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr ""
+"Em adição ao nível superior normal e ações atômicas aninhadas, o <emphasis>TxCore</"
+"emphasis> também suporta as ações de nível superior independentes, que podem ser usadas para realizar a serialização estrita numa maneira controlada. Uma ação de nível superior independente pode ser executada de qualquer lugar com outra ação atômica e comportamento exatamente igual a uma ação de nível superior normal. Os próprios resultados são construídos como permanentes uma vez que ela confirmar e não serão desfeitos caso qualquer uma das ações, das quais eram originalmente aninhadas, abortarem. "
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "Ação de Nível Top Independente "
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "Apresenta um típico aninhamento de ações atômicas, onde a ação B é aninhada com a ação A. Embora a ação atômica C seja logicamente aninhada com a ação B (isto possuia sua própria operação Iniciar invocada enquanto B era ativado), sendo que isto é uma ação de nível superior independente, ela será confirmada ou abortada independentemente de outras ações com a mesma estrutura. Devido a esta natureza de ações de nível superior independentes, elas devem ser usadas com cuidado e apenas em situações onde seus usos podem ser examinados com cautela."
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "As ações de nível superior podem ser usadas num aplicativo apenas declarando e usando instâncias da classe <classname>TopLevelTransaction</classname>. Elas são usadas exatamente da mesma maneira que as demais transações."
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "Transações com save_state e restore_state"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"Deve-se possuir muita cautela na gravação do <command>save_state</command> e das operações "
+"<command>restore_state</command>, garantindo que ações atômicas não sejam iniciadas (tanto explicitamente na operação ou implicitamente por meio do uso de algumas outras operações). Esta restrição aparece devido ao fato que o <emphasis>TxCore</emphasis> poderá invocar o <command>restore_state</command> como parte do próprio processo de confirmação, resultando na tentativa de executar uma ação atômica durante a confirmação ou aborto da fase de outra ação. Isto poderá violar as propriedades atômicas da ação que estão sendo confirmadas (abortadas). Desta maneira, este procedimento é desencorajado."
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "Vamos considerar o exemplo Array fornecido previamente. As operações set e get podem ser implementadas conforme apresentado abaixo."
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "Isto é uma simplificação do código, ignorando as condições de erro e exceções."
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Objetos coletores de lixo"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "Os objetos Java são deletados quando o coletor de lixo determinar que eles não são mais requeridos. A deletação de um objeto que está sob o controle de uma transação deve ser abordada com cuidado. Caso o objeto esteja sendo manipulado pela transação, o seu destino é conseqüentemente determinado pela transação. Portanto, independente das referências de um objeto transacional mantido por um aplicativo, o <emphasis>TxCore</emphasis> irá sempre reter suas próprias referências para garantir que o objeto não é lixo coletado, até que qualquer transação tenha sido terminada."
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "Transações de intervalo"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "Pelo padrão, as transações duram até que elas sejam terminadas pelo aplicativo que as criam ou se uma falha ocorrer. No entanto, é possível configurar um intervalo (em segundos) por transação, de forma que se a transação não for terminada antes que o intervalo acabe, ela será automaticamente revertida."
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr ""
+"No <emphasis>TxCore</emphasis>, o valor do intervalo é fornecido como uma parâmetro para o construtor <classname>AtomicAction</classname>. Caso o valor <literal>AtomicAction.NO_TIMEOUT</literal> seja fornecido (padrão), a transação não será automaticamente interrompida. Qualquer outro valor positivo é assumido ao intervalo da transação (em segundos). Um valor zero é adquirido para ser um intervalo padrão global, do qual pode ser fornecido pela propriedade <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>, a não ser que o valor padrão modificado seja 60 segundos."
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"Quando uma transação de nível superior for criada com um intervalo diferente de zero, ela estará sujeita a reversão, caso a mesma não seja completada com o número específico de segundos. O <emphasis>JBossTS</emphasis> usa um segmento reaper separado, do qual monitora todas as transações criadas localmente e as força a executar a reversão, caso o intervalo das mesmas acabe. Para prevenir que este segmento consuma tempo do aplicativo, ele apenas roda periodicamente. O padrão de período de checagem é de 120000 milésimos de segundos, mas ele pode ser substituído pela configuração da variável de propriedade <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> para outro valor válido em milhões de segundo. Alternativamente, caso um <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> seja configurado para <literal>DYNAMIC</literal>, a transação reaper irá atuar a qualquer instante em que a transação sofrer um intervalo. Isto possui a vantagem de finalizar as transações com antecedência, mas, por outro lado, poderá sofrer com a re-programação contínua do segmento reaper."
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"Caso um valor 0 seja especificado para o intervalo da transação de nível superior (ou não haja intervalo especificado), então o <emphasis>JBossTS</emphasis> não irá impor qualquer intervalo na transação, por exemplo: isto permitirá a rodagem indeterminadamente. O padrão de intervalo pode ser substituído pela configuração da variável da propriedade quando usando <emphasis>ArjunaCore</emphasis> ou <emphasis>ArjunaJTS</"
+"emphasis>, ou <literal>com.arjuna.ats.jts.defaultTimeout</literal> se utilizando <emphasis>ArjunaJTS</emphasis> para determinar o valor de intervalo em segundos."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,328 @@
+# translation of Chapter_04.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 14:46+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "Dicas e Conselhos"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "Geral"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "Usando transações em construtores"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "Os exemplos demonstrados neste manual têm utilizado transações na implementação de construtores para novos objetos de persistência. Isto é discutido uma vez que garante a propagação correta deste estado do objeto para o armazenamento do objeto. Lembre-se de que o estado de um objeto persistente modificado é apenas gravado no armazenamento do objeto quando a transação de nível superior for confirmada. Desta forma, se uma transação do construtor for de nível superior e confirmada, então o mais novo objeto criado é gravado no armazenamento e será imediatamente disponível. No entanto, se a transação do construtor for confirmada, mas estiver aninhada devido a algumas outras transações iniciadas antecipadamente a rodagem da criação do objeto, então o estado será gravado apenas se todas as transações parent estiverem confirmadas."
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "Por outro lado, caso o construtor não use transações, o aparecimento de inconsistências no sistema será possível. Por exemplo, caso não hajam transações ativadas quando o objeto for criado, então o próprio estado não será salvo ao armazenamento até a próxima vez em que o objeto seja modificado, sob o controle de algumas transações. "
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "Considere a simples amostra abaixo:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"Neste caso, os dois objetos são criados fora do controle de ação de nível superior A. O <literal>obj1</literal> é um novo objeto enquanto que o <literal>obj2</literal> é um objeto antigo existente. Quando a operação relembrar do <literal>obj2</"
+"literal> for invocada, o objeto será ativado e Uid do <literal>obj1</literal> relembrado. Uma vez que esta ação for confirmada o estado persistente do <literal>obj2</literal> poderá conter agora o Uid do objeto. No entanto, o estado do <literal>obj1</literal> por si próprio, não foi salvo uma vez que ele não foi manipulado sob o controle de qualquer ação. Na realidade, isto nunca será salvo a não ser que ele seja modificado sob o controle de algumas ações mais tarde no aplicativo. Porém, se o construtor tenha usado uma ação atômica, o estado do <literal>obj1</literal> poderia ter sido salvo automaticamente no período em que isto foi construído, e esta consistência jamais apareceria."
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "Um pouco mais a respeito do save_state e restore_state"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+"O <emphasis>TxCore</emphasis> poderá invocar a operação <command>save_state</"
+"command> do usuário definido de um objeto, a qualquer período durante o ciclo de vida de um objeto incluído durante a construção da execução do corpo de um construtor do objeto (particularmente se isto usa as ações atômicas). Isto é importante e portanto, todas aquelas variáveis salvas save_state são corretamente inicializadas."
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"Deve-se ter atenção quando gravando as operações <command>save_state</"
+"command> e <command>restore_state</command>, garantindo que não há transações inicializadas (tanto explicitamente na operação ou implicitamente através do uso de alguma outra operação). Esta restrição surge devido ao fato de que o <emphasis>TxCore</emphasis> poderá invocar o <command>restore_state</"
+"command> como parte do próprio processo de confirmação resultante, na tentativa de executar uma transação atômica durante as fases confirmação ou aborto de outra transação. Isto poderá violar as propriedades atômicas da transação sendo confirmada (abortada). Por isto, ela não é recomendada."
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"Com a finalidade de suportar a recuperação de travamento para objetos de persistência, é necessário que todos métodos <literal>save_state</literal> e <literal>restore_state</literal> de objetos do usuário chamem o <command>super.save_state</command> e "
+"<command>super.restore_state</command>."
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Objetos de Empacotamento "
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"Todos os tipos básicos de Java (int, long, etc.) podem ser salvos e restaurados a partir de uma instância <classname>Input/OutputObjectState</classname>, usando as rotinas de empacotamento (e desempacotamento) fornecidas pelo <classname>Input/OutputObjectState</"
+"classname>. No entanto, os objetos de empacotamento e desempacotamento poderiam ser manuseados de maneira diferente. O motivo disto é que os objetos de empacotamento trazem problemas adicionais de alliasing. Isto quer dizer, duas diferentes referências de objeto poderão estar em um ponto de fato atual no mesmo ítem. Por exemplo:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "Ambos os pontos s1 e s2 de mesma seqüência e uma implementação naive do <command>save_state</command> poderão acabar copiando dobrado a seqüência. Do ponto de vista do <command>save_state</command>, isto é simplesmente ineficiente. No entanto, isto faz com que o <command>restore_state</command> seja incorreto uma vez que ele poderia desempacotar as duas seqüências em áreas diferentes de memória, destruindo a informação aliasing original. A versão atual do TxCore irá empacotar e desempacotar as referências de objeto separadamente."
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "Uso direto do StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 "Os exemplos apresentados neste manual possuem sempre classes de usuários derivadas do <classname>LockManager</classname>. As razões para isto são duplicadas. Primeiramente, e a mais importante, as restrições serializadas das ações atômicas solicitam isto, e o motivo pelo qual isto reduz a necessidade de intervenção por parte do programador. No entanto, tudo isto apenas se o acesso aos mecanismos de recuperação e persistência do <emphasis>TxCore</emphasis> for solicitado e a derivação direta de uma classe do usuário a partir do <classname>StateManager</classname> for possível."
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+"As classes derivadas diretamente do <classname>StateManager</classname> devem fazer uso dos próprios mecanismos de gerenciamento de estado explícito (estas interações são normalmente responsabilizadas pelo <classname>LockManager</classname>). A partir do ponto de vista do programador, isto soma na realização do uso apropriado das operações ativas, desativadas e modificadas, uma vez que os construtores do <classname>StateManager</"
+"classname> são efetivamente idênticos aos do <classname>LockManager</classname>."
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr "O <command>Activate</command> carrega um objeto do armazenamento do objeto. O Uid do objeto deve já estar configurado através do construtor e o objeto deve existir no armazenamento. Caso o objeto seja lido com sucesso, o <command>restore_state</command> será chamado para construir o objeto de memória. O <command>Activate</command> é idempotente, e, desta forma, uma vez que o objeto tenha sido ativado as próximas chamadas serão ignoradas. O parâmetro representa o nome raiz do armazenamento do objeto para buscar pelo objeto. Um valor nulo significa que você deve usar o armazenamento padrão. "
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "A inversão do activate. As primeiras chamadas <command>save_state</command> para a construção da imagem compactada do objeto que é então salvo no armazenamento do objeto. Os objetos são apenas salvos caso eles tenham sido modificados, uma vez que eles foram ativados. O parâmetro representa o nome raiz do armazenamento do objeto no objeto que deverá ser salvo. O valor nulo significa que você deve usar o armazenamento padrão."
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>Deve</emphasis> ser chamado antecipadamente à modificação do objeto em memória. Caso isto não seja chamado, o objeto não será salvo no armazenamento do objeto pela desativação."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,943 @@
+# translation of Chapter_05.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:47+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "Ferramentas"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "Este capítulo explica como iniciar e usar as ferramentas do framework e quais delas estão disponíveis."
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "Inicializando as ferramentas de Serviço de Transação"
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "A maneira de inicializar as ferramentas do serviço de transação difere na operação do sistema que está sendo utilizado:"
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr "Clique duas vezes no link ‘Iniciar Ferramentas’ no grupo do Programa de Serviço de Transação JBoss do menu inicial."
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "Inicie uma janela de comando e digite:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr "Uma vez completado isto, as ferramentas da janela irão aparecer. Esta é a sala de espaço para todas as ferramentas lançadas com o <emphasis>Serviço de Transação JBoss</emphasis>. Você perceberá uma barra de menu na parte superior da janela. Esta barra de ferramentas possui quatro ítens:"
+
+#. Tag: title
+#: Chapter_05.xml:39
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "O Menu de <menuchoice><guimenu>File</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:44
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Abra o Navegador JMX"
+
+#. Tag: para
+#: Chapter_05.xml:45
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr "Isto exibe a janela de navegador JMX (consulte ***Using the JMX Browser para maiores informações em como se usar o navegador JMX)."
+
+#. Tag: term
+#: Chapter_05.xml:49
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Abra o Navegador de Armazenamento do Objeto"
+
+#. Tag: para
+#: Chapter_05.xml:50
+#, no-c-format
+msgid ""
+"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 ""
+"Isto exibirá a janela do navegador do Armazenamento do Objeto JBossTS (consulte ***Using the "
+"Object Store Browser para maiores informações em como usar o navegador do Armazenamento do Objeto)."
+
+#. Tag: term
+#: Chapter_05.xml:54
+#, no-c-format
+msgid "Settings"
+msgstr "Configurações"
+
+#. Tag: para
+#: Chapter_05.xml:55
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "Esta opção abre o diálogo de configurações do qual permite você configurar as diferentes ferramentas disponíveis."
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Exit"
+msgstr "Saída"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "Isto encerra a janela de ferramentas e sai do aplicativo. As alterações que não foram salvas ou confirmadas serão perdidas."
+
+#. Tag: title
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "O Menu de <menuchoice><guimenu>Performance</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Open"
+msgstr "Abrir"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr "Isto abre a janela de desempenho - para maiores informações sobre a ferramenta de desempenho consulte: <xref linkend=\"Performance_Tool\"/>."
+
+#. Tag: term
+#: Chapter_05.xml:77
+#, no-c-format
+msgid "Close All"
+msgstr "Fechar Tudo"
+
+#. Tag: para
+#: Chapter_05.xml:78
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"Isto fecha todas as janelas de desempenho abertas no momento - para maiores informações na ferramenta de desempenho consulte: <xref "
+"linkend=\"Performance_Tool\"/>."
+
+#. Tag: title
+#: Chapter_05.xml:87
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "O Menu da <menuchoice><guimenu>Window</guimenu></menuchoice> "
+
+#. Tag: term
+#: Chapter_05.xml:90
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Janelas "
+
+#. 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 "Isto coordena as janelas numa linha diagonal com a finalidade de você encontrar uma janela específica."
+
+#. Tag: term
+#: Chapter_05.xml:95
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:96
+#, no-c-format
+msgid ""
+"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 "Para cada janela atualmente visível, uma opção extra de menu estará disponível. Se selecionarmos a opção de menu, veremos uma janela associada à parte da frente da área de trabalho. "
+
+#. Tag: title
+#: Chapter_05.xml:104
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "O Menu de <menuchoice><guimenu>Help</guimenu></menuchoice>"
+
+#. Tag: term
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:108
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "Isto exibe a janela about que contém informações do produto."
+
+#. Tag: title
+#: Chapter_05.xml:119
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "Usando a Ferramenta de Desempenho"
+
+#. Tag: para
+#: Chapter_05.xml:121
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 "A ferramenta de desempenho pode ser usada para exibir informações de desempenho sobre o serviço de transação. Esta informação é coletada usando o bean JMX de Desempenho significando que o serviço de transação precisa ser integrado a um Servidor do Aplicativo, para ceder qualquer informação de desempenho."
+
+#. Tag: para
+#: Chapter_05.xml:123
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"A informação de desempenho é exibida através do gráfico de multi-seqüências. Para visualização deste gráfico apenas abra uma janela de desempenho selecionando <menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+
+#. Tag: para
+#: Chapter_05.xml:125
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "A janela na tela contém um gráfico multi-seqüenciado que pode exibir a seguinte informação:"
+
+#. Tag: para
+#: Chapter_05.xml:130
+#, no-c-format
+msgid "Number of transactions."
+msgstr "Número de transações."
+
+#. Tag: para
+#: Chapter_05.xml:135
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "Número de Transações confirmadas."
+
+#. Tag: para
+#: Chapter_05.xml:140
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "Número de transações abortadas."
+
+#. Tag: para
+#: Chapter_05.xml:145
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "Número de transações aninhadas."
+
+#. Tag: para
+#: Chapter_05.xml:150
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "Número de heurísticos crescidos."
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "Para ligar e desligar estas seqüências, selecione a opção de menu a partir do menu de seqüências."
+
+#. Tag: para
+#: Chapter_05.xml:158
+#, no-c-format
+msgid ""
+"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 "Quando as seqüências forem ligadas, as mesmas aparecerão na legenda na parte inferior do gráfico. A cor do texto próximo ao nome das seqüências (por exemplo, Transações Criadas) é a cor da linha representante daquele dado."
+
+#. Tag: para
+#: Chapter_05.xml:161
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "O dado apresentado é grifado com referência ao tempo. O Y-axis representa o número de transações e o X-axis representa o tempo."
+
+#. Tag: para
+#: Chapter_05.xml:164
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 "A qualquer instante a amostra do dado pode ser interrompida e restaurada usando o menu <menuchoice><guimenu>Sampling</guimenu></menuchoice>, e o dado atualmente visível no gráfico pode ser salvo ao arquivo de Valores Separados por Vírgulas - Comma Separate Values (CSV), para importação de dados em um aplicativo de spreadsheet usando a opção de menu <menuchoice><guimenu>Save to .csv</guimenu></menuchoice> a partir do menu <menuchoice><guimenu>Data</guimenu></menuchoice>."
+
+#. Tag: title
+#: Chapter_05.xml:169
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "Usando o Navegador JMX"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"Para abrir a janela do navegador JMX, clique no menu <menuchoice><guimenu>File</"
+"guimenu></menuchoice> e então clique na opção <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice>. A janela do navegador JMX será então exibida."
+
+#. Tag: para
+#: Chapter_05.xml:173
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 "A janela é feita de duas seções principais: o painel de detalhes e o painel MBean. O painel MBean exibe os MBeans expostos pelo servidor MBean. Eles são agrupados pelo nome domínio. O painel de detalhes exibe informação sobre o atual MBean selecionado. Para selecionar o MBean apenas clique no botão esquerdo do mouse e ele será marcado. Segue abaixo, a informação exibida no painel de detalhes:"
+
+#. Tag: para
+#: Chapter_05.xml:178
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "O número total de MBeans registrados neste servidor."
+
+#. Tag: para
+#: Chapter_05.xml:183
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "O número de construtores expostos por este MBean."
+
+#. Tag: para
+#: Chapter_05.xml:188
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "O número de atributos exposto pelo MBean."
+
+#. Tag: para
+#: Chapter_05.xml:193
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "O número de operações expostas por este MBean."
+
+#. Tag: para
+#: Chapter_05.xml:198
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "O número de notificações expostas por este MBean."
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "Uma descrição prévia do MBean."
+
+#. Tag: para
+#: Chapter_05.xml:208
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 "Há também um link <menuchoice><guimenu>View</guimenu></menuchoice>, que quando acionado, exibe atributos e operações expostas pelo MBean. A partir disto, você pode visualizar atributos de leitura, alterar atributos de gravação e invocar operações."
+
+#. Tag: title
+#: Chapter_05.xml:212
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "Usando Atributos e Operações"
+
+#. Tag: para
+#: Chapter_05.xml:213
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 "Quando clicarmos no link <menuchoice><guimenu>View</guimenu></menuchoice>, os Atributos JMX de Visualização e janela de operações serão exibidos. A partir disto, você pode também alterar os atributos de gravação. Caso um atributo seja apenas de leitura, ele não estará apto a alterar o valor dos atributos. Para alterar um valor do atributo, apenas clique duas vezes no valor atual e entre o novo valor. Caso o botão <guibutton>...</guibutton> seja ativado, então você pode clicá-lo para visualizar um método de edição mais adequado. Vamos imaginar que o tipo do atributo é um nome do objeto JMX, então se clicarmos neste botão serão exibidos os atributos JMX e as operações para aquele objeto. "
+
+#. Tag: para
+#: Chapter_05.xml:216
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 "A qualquer instante você pode clicar no botão <guibutton>Refresh</guibutton> para atualizar os valores do atributo. Caso uma exceção ocorra enquanto restaurando o valor de um atributo, a exceção será exibida no lugar do valor dos atributos."
+
+#. Tag: para
+#: Chapter_05.xml:219
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 "Você pode também invocar as operações por um MBean. A lista de operações exibidas por um MBean é exibida abaixo da lista de atributos. Para invocar uma simples operação, selecione-a a partir da lista e clique no botão <guibutton>Invoke</guibutton>. Caso a operação solicite parâmetros, uma janela futura será exibida. A partir desta janela você deverá especificar valores para cada um dos parâmetros solicitados. Você especifica os valores do parâmetro da mesma maneira que você especifica os valores do atributo JMX. Uma vez que você tenha especificado o valor para cada um dos parâmetros, clique no botão <guibutton>Invoke</guibutton> para desempenhar a invocação."
+
+#. Tag: para
+#: Chapter_05.xml:222
+#, no-c-format
+msgid "Once the method invocation has completed its return value will be displayed."
+msgstr "Assim que a invocação do método tenha sido completada, o seu valor de retorno será exibido."
+
+#. Tag: title
+#: Chapter_05.xml:227
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "Usando o navegador do Armazenamento do Objeto"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 "Para abrir a janela do navegador de Armazenamento do Objeto, clique no menu <menuchoice><guimenu>File</guimenu></menuchoice> e então clique na opção <menuchoice><guimenu>Open Object Store Browser</guimenu></menuchoice>. A janela do navegador de Armazenamento do Objeto será então exibida."
+
+#. Tag: para
+#: Chapter_05.xml:231
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "A janela do navegador de armazenamento do objeto é dividida em quatro seções:"
+
+#. Tag: para
+#: Chapter_05.xml:236
+#, no-c-format
+msgid ""
+"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 "Raízes de Armazenamento do Objeto - isto é uma destruição das raízes de armazenamento do objeto disponível. Selecionando uma opção a partir da lista irá re-popular a visualização de hierarquia de visualização com os conteúdos da raiz selecionada."
+
+#. Tag: para
+#: Chapter_05.xml:241
+#, no-c-format
+msgid ""
+"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 "Hierarquia de Armazenamento do Objeto- isto é uma árvore que apresenta a hierarquia de armazenamento do objeto. A seleção de um nó a partir desta árvore irá exibir os objetos armazenados naquela localização."
+
+#. Tag: para
+#: Chapter_05.xml:246
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objetos - esta é a lista de ícons que representam os objetos armazenados na localização selecionada."
+
+#. Tag: para
+#: Chapter_05.xml:251
+#, no-c-format
+msgid ""
+"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 "Detalhes do Objeto - isto apresenta informação a respeito do atual objeto selecionado (apenas se o tipo de objeto é conhecido pelo repositório de visualização do estado. Consulte a Gravação de um OSV para maiores informações de como se gravar os visualizadores de um estado de objeto)."
+
+#. Tag: title
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "Visualizadores de Estado do Objeto - Object State Viewers (OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:259
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 "Quando um objeto for selecionado no painel de objetos da janela principal, a Visualização de Estado de Objeto (ou OSV) registrada para aquele tipo de objeto será invocada. O trabalho do OSV é manter informações disponíveis através do usuário de interface ao usuário, com a finalidade de apresentar informações a respeito do objeto selecionado. O OSV é distribuído com ferramentas padrões para Ações Atômicas. Ele exibe informações referentes as Gravações Abstratas em diversas listas (por exemplo: heurística, de falha, de leitura apenas, etc). É também possível gravar o seu próprio OSVs, do qual pode ser usado para exibir informações referentes aos tipos de objetos que você estiver definindo. Este assunto será discutido adiante."
+
+#. Tag: title
+#: Chapter_05.xml:263
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "Gravando um OSV"
+
+#. Tag: para
+#: Chapter_05.xml:264
+#, no-c-format
+msgid ""
+"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 "A gravação de um plugin OSV permite que você estenda as capacidades do navegador de Armazenamento do Objeto para apresentar o estado das gravações abstratas do usuário definido. Um plug-in OSV é simplesmente uma classe que implementa a interface:"
+
+#. Tag: code
+#: Chapter_05.xml:269
+#, no-c-format
+msgid "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr "com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:271
+#, no-c-format
+msgid ""
+"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 "Isto deve ser empacotado numa JAR com o diretório plugins. Este exemplo apresenta como criar um plugin OSV para uma sub-classe de gravação abstrata que parece-se com:"
+
+#. Tag: screen
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+"Quando esta gravação abstrata é visualizada no navegador de armazenamento do objeto, será interessante ver o valor atual. Isto é fácil de se fazer uma vez que podemos ler o estado dentro de uma instância de nossa gravação abstrata e chamar o <methodname>getValue()</"
+"methodname>. Segue abaixo, o código de recurso plug-in de armazenamento do objeto:"
+
+#. Tag: screen
+#: Chapter_05.xml:278
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 "O método <methodname>uidNodeExpanded</methodname> é invocado quando uma UID (Identificação Única) representante, de tipo dado, for expandida na árvore hierárquica de armazenamento do objeto. Isto não é solicitado por este plugin, pois uma gravação abstrata não é visível no armazenamento de objeto. Isto é apenas visível através de uma das listas em uma ação atômica. O método <methodname>entrySelected</methodname> é invocado quando uma entrada for selecionada, a partir de uma visualização do objeto que representa um objeto de tipo dado. Em ambos os métodos o StatePanel é usado para exibir informação referente ao estado do objeto. O painel do estado possui os seguintes métodos que auxiliam na exibição desta informação:"
+
+#. Tag: para
+#: Chapter_05.xml:284
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>: O método pode ser usado para apresentar informações gerais."
+
+#. Tag: para
+#: Chapter_05.xml:289
+#, no-c-format
+msgid ""
+"<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 "<methodname>setData(String name, String value)</methodname>: Este método é usado para adicionar informações na tabela que é exibida pela ferramenta do navegador de armazenamento do objeto."
+
+#. Tag: para
+#: Chapter_05.xml:294
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: Este método é usado para ativar os detalhes abaixo. A interface listener permite que um plug-in saiba quando o botão for pressionado. Fica a escolha do desenvolvedor do plug-in decidir como exibir esta futura informação."
+
+#. Tag: para
+#: Chapter_05.xml:299
+#, no-c-format
+msgid ""
+"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 "Neste exemplo, lemos o estado a partir do armazenamento do objeto e usamos o valor retornado pelo getValue(), para adicionar uma entrada dentro da tabela de painel do estado. O método getType() retorna o tipo em que este plug-in é, com a finalidade de ser registrado em referência a isto."
+
+#. Tag: para
+#: Chapter_05.xml:302
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"Para adicionar este plug-in ao navegador do armazenamento do objeto é necessário empacotá-lo em um arquivo JAR (Java Archive), com o nome que é pré-fixado com 'osbv-'. O arquivo JAR deve conter certas informações com um arquivo manifesto para que o navegador de armazenamento de objeto saiba quais classes são plug-ins. Tudo isto pode ser desempenhado usando um script <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink>, como segue abaixo:"
+
+#. Tag: screen
+#: Chapter_05.xml:305
+#, no-c-format
+msgid ""
+"&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;"
+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
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"Uma vez que o JAR tenha sido criado com a informação correta no arquivo de manifesto, isto apenas precisará ser substituído no diretório <emphasis>bin/tools/plugins</"
+"emphasis>."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,870 @@
+# translation of Chapter_06.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 16:21+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "Construção de objetos Transacionais para aplicativos Java"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "Construção de Aplicativo"
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "Existem duas fases distintas para o desenvolvimento de um aplicativo TXCore:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "Desenvolvimento de novas classes com certas características (por exemplo: Persistência, Recuperação, Concorrência Controlada)."
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "Desenvolvimento de aplicativo(s) que fazem uso de novas classes dos objetos."
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr "Embora estas fases possam ser desempenhadas em paralelo e por uma única pessoa, podemos nos referir ao primeiro passo como o trabalho de um desenvolvedor de classe e o segundo como o trabalho de desenvolvedor de aplicativos. O desenvolvedor de classe irá preocupar-se com a definição apropriada <code>save_state</code> e operações <code>restore_state</code> para esta classe, configurando bloqueios apropriados nas operações e invocando os construtores de classe TxCore apropriado. O desenvolvedor dos aplicativos irão preocupar-se mais com a definição da estrutura geral do aplicativo, particularmente a respeito do uso de ações atômicas."
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "Este capítulo ilustra os pontos destacados em seções anteriores pela estrutura de tópico de um aplicativo simples: neste caso uma classe de Fila FIFO simples será desenvolvida para integração de valores. A implementação da Fila estará com uma estrutura de lista com duplo links e será implementada como um objeto único. Provavelmente, usaremos este exemplo no resto deste manual, para ajudar a ilustrar os diversos mecanismos fornecidos pelo TxCore. Enquanto isto é um exemplo de aplicativo surreal, isto ativa todas as modificações a serem descritas com a solicitação em profundo conhecimento do código do aplicativo."
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "Assumiremos que o aplicativo não é distribuído no resto deste capítulo. Caso este não seja o caso, então a informação de contexto deve ser propagada tanto implicitamente como explicitamente."
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "Descrição da Fila"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "Esta fila é uma fila FIFO tradicional, onde elementos são adicionados pela frente e removidos por trás. As operações fornecidas pelas classes permitem que valores sejam colocados na fila (enfileirados) e removidos dela (desinfileirados). Além disso, é também possível mudar e inspecionar os valores de elementos na fila. Neste exemplo de implementação, um array é usado para representar a fila. O limite dos elementos <code>QUEUE_SIZE</code> tem sido imposto por este exemplo."
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "Segue abaixo, a definição de interface Java desta classe de fila simples:"
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Construtores e De-construtores"
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "Assim como declarado na seção anterior, o uso de um objeto persistente existente solicita o uso de um construtor especial, do qual é requerido a obter o UID do objeto de persistência. A implementação de tal construtor é dada abaixo:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "O construtor que cria um objeto de persistência nova parece-se com:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 "O uso de uma ação atômica com o construtor para um novo objeto segue as estruturas de tópicos das linhas de comando anteriores, além de garantir que o estado do objeto seja gravado ao armazenamento do objeto, uma vez que a ação atômica de nível superior apropriada for confirmada (da qual será tanto a ação A ou alguma ação inclusa ativa quando o <code>TransactionalQueue</code> for construído). O uso de ações atômicas num construtor é simples: uma ação deve ser declarada e sua inicialização de operação invocada. A operação deve então definir um bloqueio apropriado no objeto (neste caso um bloqueio <code>WRITE</code> deve ser adquirido), e então o corpo principal do construtor é executado. Caso isto seja realizado com êxito a ação atômica pode ser confirmada, do contrário ela será abortada."
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "O destruidor da classe de fila é apenas solicitado para chamar a operação de término do <methodname>LockManager</methodname>"
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state, resotre_state and type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "As implementações de save_state e restore_state são relativamente simples para este exemplo:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"Devido a classe da Fila ser derivada da classe <classname>LockManager</"
+"classname>, o tipo de operação deve parecer-se com:"
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "Operações enfileiradas/desenfileiradas"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "Caso as operações da classe da fila estiverem para ser codificadas como ações atômicas, então a operação enfileirar poderá ter a estrutura dada abaixo (a operação desenfileirar pode ser estruturada similarmente):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "Segue abaixo a implementação do <methodname>queueSize</methodname>: "
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Operações inspectValue/setValue"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr "Segue abaixo a implementação do <methodname>inspectValue</methodname>. O <methodname>setValue</methodname> é parecido e não é apresentado."
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "O cliente"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "Ao invés de apresentarmos todos os códigos para o cliente, iremos nos concentrar numa porção representativa. Antes de invocar operações no objeto, o cliente deve primeiramente vincular-se a isto. No caso local, isto simplesmente solicita ao cliente a criar uma instância do objeto."
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr "Antes de invocar uma das operações da fila, o cliente inicializa a transação. Segue abaixo, a operação <methodname>queueSize</methodname>:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "Comentários"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "Considerando que o objeto da fila é persistente, então o estado do objeto sobreviverá a qualquer falha do nó em que estiver localizado. O estado do objeto que sobreviverá é aquele produzido pelo último nível superior confirmado de ação atômica executada no objeto. Caso a intenção de um aplicativo é executar duas operações enfileiradas atomicamente, por exemplo, então isto poderá ser feito aninhando as operações enfileiradas em outra ação atômica inclusa. Adicionado a isto, as operações concorrentes serão serializadas em tal objeto de persistência, desta forma prevenindo inconsistências no estado do objeto. No entanto, uma vez que os elementos dos objetos da fila não são individualmente controlados, algumas combinações das invocações de operação atual serão executadas em série, assim como elas podem ser executadas ao mesmo tempo. Por exemplo, modificando os estados em dois elementos diferentes na fila. Na próxima seção endereÃ!
 §aremos alguns destes problemas."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,344 @@
+# translation of Chapter_07.po to Brazilian Portuguese
+# Language pt-BR translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Leticia de Lima <ldelima at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 16:33+1000\n"
+"Last-Translator: Leticia de Lima <ldelima at redhat.com>\n"
+"Language-Team: Brazilian Portuguese <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "Opções de Configuração"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "Opções"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "A seguinte tabela apresenta os recursos de configuração com valores padrões apresentados em itálico. Maiores detalhes a respeito de cada opção podem ser encontrados nas seções relevantes deste documento. "
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "Opções de Configuração TxCore"
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "Nome de Configuração"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "Valores Possíveis"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "Descrição"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "Ativa a sincronização do armazenamento do objeto que está ligado ou desligado. Use com cautela."
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "Especifica o tipo da implementação do armazenamento do objeto para uso. "
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/any integer value"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "Determina o número de diretório de estados do objeto hash para a implementação do armazenamento do objeto HashedStore."
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "Especifica o tipo de bloqueio da implementação de armazenamento de bloqueio para uso."
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "Especifica a localização de armazenamento do bloqueio."
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "Qualquer localização em que o aplicativo pode efetuar uma gravação."
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "Especifica a localização de armazenamento do objeto."
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "Especifica o nome da raiz de armazenamento do objeto."
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "A transação de implementação de logon para uso."
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "Liga e desliga a confirmação assíncrona (padrão)."
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "Liga e desliga a preparação assíncrona (padrão)."
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "Nome da Classe JDBCAccess"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "A implementação JDBCAccess de uso nos armazenamentos de objeto de nível do usuário."
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "A implementação JDBCAccess de uso para armazenamentos de objeto de transação."
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "Ativa ou desativa a otimização confirmar de uma fase."
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "Ativa ou desativa a otimização apenas pronta para o aborto de segunda fase."
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "Inicia/Interrompe a coleção de informação da estatística de transação."
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr "Inicia com a ativação ou desativação do sistema de transação. Ativa/desativa através da classe arjuna.ats.arjuna.coordinator.TxControl."
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "Número Inteiro"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "Intervalo em milésimo de segundos."
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/pt-BR/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_A.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_A.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_A.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,692 @@
+# translation of Appendix_A.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-08 12:46+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Appendix_A.xml:6
+#, no-c-format
+msgid "Object store implementations"
+msgstr "Object store 的实现"
+
+#. Tag: title
+#: Appendix_A.xml:9
+#, no-c-format
+msgid "The ObjectStore"
+msgstr "Object Store"
+
+#. Tag: para
+#: Appendix_A.xml:10
+#, no-c-format
+msgid ""
+"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 "在本附录里,我们将查看不同的 TxCore object store 实现并给出如何创建其他实现并插入应用程序的准则。"
+
+#. Tag: para
+#: Appendix_A.xml:13
+#, no-c-format
+msgid ""
+"This release of JBossTS contains several different implementations of a "
+"basic object store. Each serves a particular purpose and is generally "
+"optimised for that purpose. All of the implementations are derived from the "
+"<interface>ObjectStore</interface> interface. This defines the minimum "
+"operations which must be provided in order for an object store "
+"implementation to be used by JBossTS. The default object store "
+"implementation can be overridden at runtime by setting the <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> property variable "
+"to one of the types described below."
+msgstr ""
+"本版本的 JBossTS 包括几个不同的基本 object store 的实现。每个服务于特定的目的且通常为之进行了优化。所有的实现都源自 <interface>ObjectStore</interface> 接口。这定义了 JBossTS 使用的 object store  实现所必须提供的最小操作。缺省的 object store 实现可以在运行时通过设置 <property>com."
+"arjuna.ats.arjuna.objectstore.objectStoreType</property> 属性变量为下列类型之一来覆盖。"
+
+#. Tag: screen
+#: Appendix_A.xml:16
+#, no-c-format
+msgid ""
+"/*\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"
+"};"
+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
+#, no-c-format
+msgid ""
+"JBossTS programmers need not usually interact with any of the object store "
+"implementations directly other than possibly to create them in the first "
+"place (even this is not necessary if the default store type is used as "
+"JBossTS will create stores as necessary). All stores manipulate instances of "
+"the class <classname>ObjectState</classname> which are named using a type "
+"(via the object's type() operation) and a Uid. For atomic actions purposes "
+"object states in the store can be principally in two distinct states: "
+"OS_COMMITTED, and OS_UNCOMMITTED. An object state starts in the OS_COMMITTED "
+"state but when modified under the control of an atomic action a new second "
+"object state may be written that is in the OS_UNCOMMITTED state. If the "
+"action commits this second object state replaces the original and becomes "
+"OS_COMMITTED. If the action aborts, this second object state is simply "
+"discarded. All of the implementations provided with this release handle "
+"these state transitions by making use of shadow copies of object states, "
+"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 ""
+"JBossTS 程序员除了创建 Object store 实现外(即使这也不是必需的,因为如果使用缺省的 Object Store,JBossTS 将自动创建)通常不需要和它们进行直接交互。所有的 <classname>ObjectState</classname> 类的实例用类型(通过对象的 type() 操作)和 UID 来命名。对于原子动作而言,Object Store "
+"里的对象状态主要有两种不同的状态:OS_COMMITTED 和 OS_UNCOMMITTED。对象状态以 OS_COMMITTED 开始,但当在原子动作控制之下进行修改时,另外一个对象状态也以 OS_UNCOMMITTED 将被写入。如果这个动作提交了,第二个对象状态将覆盖原始状态并成为 "
+"OS_COMMITTED。如果动作中止,第二个对象状态将简单低被丢弃。本版本里提供的所有实现都通过对象状态的影子版本来处理这些状态变换,然而,任何其他类似的实现也是允许的。在崩溃恢复系统控制下,对象状态也可能隐藏(不可访问)。"
+
+#. Tag: para
+#: Appendix_A.xml:20
+#, no-c-format
+msgid ""
+"Browsing of the contents of a store is possible through the "
+"<methodname>allTypes</methodname> and <methodname>allObjUids</methodname> "
+"operations. <methodname>allTypes</methodname> returns an "
+"<type>InputObjectState</type> containing all of the type names of all "
+"objects in a store, terminated by a null name. <methodname>allObjUids</"
+"methodname> returns an <type>InputObjectState</type> that contains all of "
+"the Uids of all objects of a given type terminated by the special "
+"<methodname>Uid.nullUid()</methodname>."
+msgstr ""
+"通过 <methodname>allTypes</methodname> 和 <methodname>allObjUids</methodname> 操作可以浏览 Store 的内容。<methodname>allTypes</methodname> 返回一个包含 Store 里所有对象的的全部类型名的 <type>InputObjectState</type> 实例。<"
+"methodname>allObjUids</methodname> 则返回一个包含给定类型的对象的所有 UID 且以 <methodname>Uid.nullUid()</methodname> 结束的 <type>InputObjectState</type> 实例。"
+
+#. Tag: title
+#: Appendix_A.xml:25
+#, no-c-format
+msgid "Persistent object stores"
+msgstr "持久性 Object Store"
+
+#. Tag: para
+#: Appendix_A.xml:26
+#, no-c-format
+msgid ""
+"This section briefly describes the characteristics and optimisations of each "
+"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 "本节简要地描述了每个持久性 Object Store 实现的特点和优化信息。持久性对象的状态映射至主机操作系统支持的文件系统结构。"
+
+#. Tag: title
+#: Appendix_A.xml:30
+#, no-c-format
+msgid "Common functionality"
+msgstr "常见功能"
+
+#. Tag: para
+#: Appendix_A.xml:31
+#, no-c-format
+msgid ""
+"In addition to the features mentioned earlier all of the supplied persistent "
+"object stores obey the following rules:"
+msgstr "除了之前提及的功能,所有的持久性 Object Store 都遵循下面的规则:"
+
+#. Tag: para
+#: Appendix_A.xml:35
+#, no-c-format
+msgid ""
+"Each object state is stored in its own file that is named using the "
+"<code>Uid</code> of the object."
+msgstr "每个对象状态都保存在各自对应的文件里,文件以对象的 <code>Uid</code> 命名。"
+
+#. Tag: para
+#: Appendix_A.xml:40
+#, no-c-format
+msgid ""
+"The type of an object (as given by the <methodname>type()</methodname> "
+"operation) determines the directory into which the object is placed."
+msgstr "对象的类型(由 <methodname>type()</methodname> 指定)决定了对象存放的目录。"
+
+#. Tag: para
+#: Appendix_A.xml:45
+#, no-c-format
+msgid ""
+"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 "所有的 Store 都有一个公共的根目录,它在配置 JBossTS 时被指定。这个目录的名称自动附加在任何 Store 专有的根信息里。"
+
+#. Tag: para
+#: Appendix_A.xml:50
+#, no-c-format
+msgid ""
+"All stores also have the notion of a localised root directory that is "
+"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 "所有的 Store 也都有本地化的根目录符号,它自动地附加到对象的类型里来指定最终的目录名称。当 Store 被创建时将指定本地化的根目录名称。本地化的根目录名称缺省是 <code>defaultStore</code>。"
+
+#. Tag: screen
+#: Appendix_A.xml:55
+#, no-c-format
+msgid ""
+"&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/"
+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 "Shadowing Store"
+
+#. Tag: para
+#: Appendix_A.xml:59
+#, no-c-format
+msgid ""
+"This is the original version of the object store as provided in prior "
+"releases and is implemented by the class <classname>ShadowingStore</"
+"classname>. It is simple but slow. It uses pairs of files to represent "
+"objects (the shadow version and the committed version) and files are opened, "
+"locked, operated upon, unlocked and closed on every interaction with the "
+"object store. Thus significant portions of time can be spent in the system "
+"simply opening, closing and renaming files, all of which are very expensive "
+"operations."
+msgstr ""
+"这是以前发行版本里提供的 Object Store 的原始版本,它由 <classname>ShadowingStore</classname> 类来实施。它很简单但也慢。它使用成对的文件来代表对象(shadow 版本和 committed 版本),每次和  Object Store "
+"交互时文件都被打开、锁定、操作、解锁和关闭。因此相当一部分时间将花费在系统的打开、关闭和重命名文件上面,而这些都是很消耗资源的操作。"
+
+#. Tag: para
+#: Appendix_A.xml:63
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowingStore</type>."
+msgstr "如果覆盖这个 object store 实现,它的类型是 <type>ShadowingStore</type>。"
+
+#. Tag: title
+#: Appendix_A.xml:67 Appendix_A.xml:85
+#, no-c-format
+msgid "No file-level locking"
+msgstr "非文件级锁"
+
+#. Tag: para
+#: Appendix_A.xml:68
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic ShadowingStore "
+"implementation does. Therefore, the default object store implementation for "
+"JBossTS, <methodname>ShadowNoFileLockStore</methodname>, relies upon user-"
+"level locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"既然事务性对象都通过 <methodname>LockManager</methodname> 进行并行控制,和基本的 ShadowingStore 实现一样强制文件级的锁就没有必要了。因此,JBossTS 缺省的 object store 实现,<methodname>ShadowNoFileLockStore</methodname>,依赖于用户级锁。这使它可以提供比 <"
+"methodname>ShadowingStore</methodname> 更好的性能。"
+
+#. Tag: para
+#: Appendix_A.xml:72 Appendix_A.xml:90
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>ShadowNoFileLockStore</type>."
+msgstr "如要要覆盖这个 Object Store,它的类型是 <type>ShadowNoFileLockStore</type>。"
+
+#. Tag: title
+#: Appendix_A.xml:76 Appendix_A.xml:94
+#, no-c-format
+msgid "The hashed store"
+msgstr "Hashed Store"
+
+#. Tag: para
+#: Appendix_A.xml:77
+#, no-c-format
+msgid ""
+"The <code>HashedStore</code> has the same structure for object states as the "
+"shadowing stores but has an alternate directory structure that is better "
+"suited to storing large numbers of objects of the same type. Using this "
+"store objects are scattered amongst a set of directories by applying a "
+"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 ""
+"<code>HashedStore</code> 具有和 Shadowing Store 一样的结构,但它也有另外的一个更适合于存储大量相同类型的对象结构。如使用这种 store,对象通过应用 hash 函数到对象的 UID 散布在一系列目录里。缺省将使用 255 个子目录。然而,你可以通过设置环境变量 <code>HASHED_DIRECTORIES</code> 来覆盖它。"
+
+#. Tag: para
+#: Appendix_A.xml:81 Appendix_A.xml:99
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>HashedStore</type>."
+msgstr "如果要覆盖这个 Object Store 信息,它的类型是 <type>HashedStore</type>。"
+
+#. Tag: para
+#: Appendix_A.xml:86
+#, no-c-format
+msgid ""
+"Since transactional objects are concurrency controlled through "
+"<methodname>LockManager</methodname>, it is not necessary to impose "
+"additional locking at the file level, as the basic "
+"<methodname>ShadowingStore</methodname> implementation does. Therefore, the "
+"default object store implementation for JBossTS, "
+"<methodname>ShadowNoFileLockStore</methodname>, relies upon user-level "
+"locking. This enables it to provide better performance than the "
+"<methodname>ShadowingStore</methodname> implementation."
+msgstr ""
+"既然事务性对象通过 <methodname>LockManager</methodname> 来控制并行性,和基本的 <methodname>ShadowingStore</methodname> 实现一样强制文件级锁就没有必要了。因此,JBossTS 缺省的 Object Store 实现,<methodname>ShadowNoFileLockStore</methodname>"
+",依赖于用户级锁。这使它可以提供比 <methodname>ShadowingStore</methodname> 更好的性能。"
+
+#. Tag: para
+#: Appendix_A.xml:95
+#, no-c-format
+msgid ""
+"The <methodname>HashedStore</methodname> has the same structure for object "
+"states as the shadowing stores but has an alternate directory structure that "
+"is better suited to storing large numbers of objects of the same type. Using "
+"this store objects are scattered amongst a set of directories by applying a "
+"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 ""
+"<code>HashedStore</code> 具有和 Shadowing Store 一样的结构,但它也有另外的一个更适合于存储大量相同类型的对象结构。如使用这种 store,对象通过应用 hash 函数到对象的 UID 散布在一系列目录里。缺省将使用 255 个子目录。然而,你可以通过设置环境变量 <code>HASHED_DIRECTORIES</code> 来覆盖它。"
+
+#. Tag: title
+#: Appendix_A.xml:103
+#, no-c-format
+msgid "The JDBC store"
+msgstr "JDBC store"
+
+#. Tag: para
+#: Appendix_A.xml:104
+#, no-c-format
+msgid ""
+"The <methodname>JDBCStore</methodname> uses a JDBC database to save "
+"persistent object states; when used in conjunction with the Transactional "
+"Objects for Java API nested transaction support is available. In the current "
+"implementation, all object states are stored as Binary Large Objects (BLOBs) "
+"within the same table. The limitation on object state size imposed by using "
+"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 ""
+"<methodname>JDBCStore</methodname> 使用 JDBC 数据库来保存持久性对象的状态。如果和Transactional "
+"Objects for Java API 一起使用,它可以支持嵌套的事务。在当前的实现里,所有的 Object Store 都以 Binary Large Objects (BLOBs) 存储在相同的表里。使用 BLOB 会限制对象状态的大小为 64k。如果试图存储超过这个限制的对象状态,系统将报错,状态也不能成功存储。随后事务将被迫回滚。"
+
+#. Tag: para
+#: Appendix_A.xml:108
+#, no-c-format
+msgid ""
+"When using the JDBC object store, the application must provide an "
+"implementation of the following interface, located in the <code>com.arjuna."
+"ats.arjuna.objectstore</code> package:"
+msgstr ""
+"在使用 JDBC object store 时,应用程序必须提供下面的接口(位于 <code>com.arjuna."
+"ats.arjuna.objectstore</code> 包里)的一个实现:"
+
+#. Tag: screen
+#: Appendix_A.xml:111
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"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 "对这个接口的实现负责提供 JDBC ObjectStore 用来保存和恢复对象状态的 <emphasis>Connection 实例</emphasis>:"
+
+#. Tag: para
+#: Appendix_A.xml:117
+#, no-c-format
+msgid ""
+"<methodname>getConnection</methodname>: returns the Connection to use. This "
+"method will be called whenever a connection is required and the "
+"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 "<methodname>getConnection</methodname>:返回要使用的连接。每当需要连接数据库时这个方法将被调用,这个实现应该所需的策略来决定返回什么样的连接。这个方法不会返回相同的 Connection 实例。"
+
+#. Tag: para
+#: Appendix_A.xml:122
+#, no-c-format
+msgid ""
+"<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 "<methodname>putConnection</methodname>:调用这个方法将退回用 getConnection 获取的 Connection 实例。当使用连接出错时,该连接将被退回。"
+
+#. Tag: para
+#: Appendix_A.xml:127
+#, no-c-format
+msgid ""
+"<methodname>initialise</methodname>: this can be used to pass additional "
+"arbitrary information to the implementation."
+msgstr "<methodname>initialise</methodname>:这个方法可以把其他任何信息传递给该实现。"
+
+#. Tag: para
+#: Appendix_A.xml:132
+#, no-c-format
+msgid ""
+"The JDBC object store will initially request the number of Connections "
+"defined in the <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> property and will use no more than defined in "
+"the <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> property."
+msgstr ""
+"JDBC object store 将首先请求 <property>com.arjuna.ats.arjuna.objectstore."
+"jdbcPoolSizeInitial</property> 属性里定义的连接的数量,它不会使用超过  <property>com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum</"
+"property> 定义的个数的连接。"
+
+#. Tag: para
+#: Appendix_A.xml:135
+#, no-c-format
+msgid ""
+"The implementation of the <interfacename>JDBCAccess</interfacename> "
+"interface to use should be set in the <property>com.arjuna.ats.arjuna."
+"objectstore.jdbcUserDbAccess</property> property variable."
+msgstr "所使用的 <interfacename>JDBCAccess</interfacename> 接口的实现应该通过 <property>com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess</property> 属性变量来设置。"
+
+#. Tag: para
+#: Appendix_A.xml:138
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>JDBCStore</type>."
+msgstr "如果要覆盖这个 Object Store 实现,其类型是 <type>JDBCStore</type>。"
+
+#. Tag: para
+#: Appendix_A.xml:141
+#, no-c-format
+msgid ""
+"A JDBC object store can be used for managing the transaction log. In this "
+"case, the transaction log implementation should be set to "
+"<property>JDBCActionStore</property> and the <methodname>JDBCAccess</"
+"methodname> implementation must be provided via the <property>com.arjuna.ats."
+"arjuna.objectstore.jdbcTxDbAccess</property> property variable. In this "
+"case, the default table name is JBossTSTxTable."
+msgstr ""
+"JDBC object store 可以用来管理事务日志。在这种情况下,事务日志实现应该设置为 <property>JDBCActionStore</property> 且 <methodname>JDBCAccess</methodname> 实现必须通过 <property>com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess<"
+"/property> 属性变量提供。此时的缺省表名是 JBossTSTxTable。"
+
+#. Tag: para
+#: Appendix_A.xml:145
+#, no-c-format
+msgid ""
+"It is possible to use the same JDBCAccess implementation for both the user "
+"object store and also the transaction log."
+msgstr "对于用户 object store 和事务日志,你都可以使用相同的 JDBCAccess 实现。"
+
+#. Tag: title
+#: Appendix_A.xml:150
+#, no-c-format
+msgid "The cached store"
+msgstr "Cached Store"
+
+#. Tag: para
+#: Appendix_A.xml:151
+#, no-c-format
+msgid ""
+"This object store used the hashed object store, but does not read or write "
+"states to the persistent backing store immediately. It maintains the states "
+"in a volatile memory cache and either flushes the cache periodically or when "
+"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 "这种 Object Store 使用 hashed object store,但并不马上把状态读出和写入持久性 Store 里。它在一个易变的内存缓存里维护状态,而且定期或满了后进行冲刷。和这个 Object Store 相关的故障模式和普通的持久性 Object Store 不同,因为故障可能导致缓存里的状态丢失。"
+
+#. Tag: para
+#: Appendix_A.xml:155
+#, no-c-format
+msgid ""
+"If overriding the object store implementation, the type of this object store "
+"is <type>CachedStore</type>."
+msgstr "要覆盖这种 object store 实现,其类型为 <type>CachedStore</type>。"
+
+#. Tag: para
+#: Appendix_A.xml:158
+#, no-c-format
+msgid "The store can be configured with the following properties:"
+msgstr "Store 可以用下面的属性进行配置:"
+
+#. Tag: para
+#: Appendix_A.xml:163
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.hash</"
+"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> 设置内部 store 使用的 hash。缺省值是 128。"
+
+#. Tag: para
+#: Appendix_A.xml:168
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.size</"
+"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> 是在触发冲刷前缓存的最大容量。缺省值为 10240 字节。"
+
+#. Tag: para
+#: Appendix_A.xml:173
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore."
+"removedItems</property> is the maximum number of removed items that the "
+"cache can contain before a flush is triggered. By default, calls to remove a "
+"state that is in the cache will simply remove the state from the cache, but "
+"leave a blank entry (rather than remove the entry immediately, which would "
+"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> 是在触发冲刷前缓存可包含的最多已删除条目的数量。在缺省情况下,对状态删除的调用将简单地从缓存里把该状态删除,但会保留一个空白的条目(而不是马上删除该条目,这样会影响缓存的性能)。当冲刷被触发时,这些条目才会从缓存里删除。其缺省值是 hash 值的两倍。"
+
+#. Tag: para
+#: Appendix_A.xml:178
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.workItems</"
+"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> 是在冲刷前缓存里可允许保留的条目的最大个数。缺省值为 100。"
+
+#. Tag: para
+#: Appendix_A.xml:183
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.scanPeriod</"
+"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> 设置缓存冲刷的时间间隔(以毫秒为单位)。缺省值为 120 秒。"
+
+#. Tag: para
+#: Appendix_A.xml:188
+#, no-c-format
+msgid ""
+"<property>com.arjuna.ats.internal.arjuna.objectstore.cacheStore.sync</"
+"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> 指定缓存的冲刷是否和磁盘同步。缺省为 OFF。要启用则可设为 ON。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_B.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_B.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Appendix_B.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,503 @@
+# translation of Appendix_B.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Appendix_B.xml:6
+#, no-c-format
+msgid "Class definitions"
+msgstr "类定义"
+
+#. Tag: title
+#: Appendix_B.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Appendix_B.xml:10
+#, no-c-format
+msgid ""
+"This appendix contains an overview of those classes that the application "
+"programmer will typically use. The aim of this appendix is to provide a "
+"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 "本附录包含了应用程序开发人员经常使用的类的概述。其目的是为编写 TxCore 应用程序提供一个快速参考手册。需要澄清的是,这里只给出了这些类的 public 或 protected 接口。"
+
+#. Tag: title
+#: Appendix_B.xml:15
+#, no-c-format
+msgid "Class library"
+msgstr "类库"
+
+#. Tag: title
+#: Appendix_B.xml:17
+#, no-c-format
+msgid "Lock Manager"
+msgstr "Lock Manager"
+
+#. Tag: screen
+#: Appendix_B.xml:20
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "StateManager"
+
+#. Tag: screen
+#: Appendix_B.xml:25
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputObjectState"
+
+#. Tag: screen
+#: Appendix_B.xml:30
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "Input/OutputBuffer"
+
+#. Tag: screen
+#: Appendix_B.xml:35
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "<title>Uid</title>"
+
+#. Tag: screen
+#: Appendix_B.xml:40
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "AtomicAction"
+
+#. Tag: screen
+#: Appendix_B.xml:45
+#, no-c-format
+msgid ""
+"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"
+"};"
+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"
+"};"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Author_Group.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Author_Group.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Author_Group.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,24 @@
+# translation of Author_Group.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:44+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: corpauthor
+#: Author_Group.xml:6
+#, no-c-format
+msgid "Red Hat Documentation Group"
+msgstr "Red Hat Documentation Group"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Book_Info.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Book_Info.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Book_Info.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,45 @@
+# translation of Book_Info.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-07-04 05:56+0000\n"
+"PO-Revision-Date: 2008-07-08 12:26+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Book_Info.xml:6
+#, no-c-format
+msgid "JBoss TS Programmers Guide"
+msgstr "JBoss TS 程序员指南"
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid "JBoss Enterprise Application Platform"
+msgstr "JBoss Enterprise 应用程序平台"
+
+#. Tag: para
+#: Book_Info.xml:11
+#, no-c-format
+msgid ""
+"This book is the Enterprise Application Platform edition of the JBoss TS "
+"Programmers Guide"
+msgstr "本书是《JBoss TS 程序员指南》基于企业级应用程序平台的版本"
+
+#. Tag: holder
+#: Book_Info.xml:22
+#, no-c-format
+msgid "&HOLDER;"
+msgstr "&HOLDER;"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1005 @@
+# translation of Chapter.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-26 15:12+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter.xml:6
+#, no-c-format
+msgid "Overview"
+msgstr "概述"
+
+#. Tag: title
+#: Chapter.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter.xml:10
+#, no-c-format
+msgid ""
+"This chapter contains a description of the use of the <classname>TxCore</"
+"classname> transaction engine and the <firstterm>Transactional Objects for "
+"Java</firstterm> classes and facilities. The classes mentioned in this "
+"chapter are the key to writing fault-tolerant applications using "
+"transactions. Thus, after describing them we shall apply them in the "
+"construction of a simple application. The classes to be described in this "
+"chapter can be found in the <classname>com.arjuna.ats.txoj</classname> and "
+"<classname>com.arjuna.ats.arjuna</classname> packages."
+msgstr ""
+"本章包含了对 <classname>TxCore</"
+"classname> 事务引擎以及用于 Java 类和工具的 <firstterm>Transactional Objects</firstterm> 的使用的描述。本章涉及的类是编写使用事务的容错应用程序的关键。因此,在介绍它们之后,我们将在一个简单的例程里进行应用。本章描述的类可以在 <classname>com.arjuna.ats.txoj</classname> 和 "
+"<classname>com.arjuna.ats.arjuna</classname> 包里找到。"
+
+#. Tag: title
+#: Chapter.xml:14
+#, no-c-format
+msgid "TxCore – the transaction engine"
+msgstr "TxCore – 事务引擎"
+
+#. Tag: para
+#: Chapter.xml:16
+#, no-c-format
+msgid ""
+"In keeping with the object-oriented view, the mechanisms needed to construct "
+"reliable distributed applications are presented to programmers in an object-"
+"oriented manner. Some mechanisms need to be inherited, for example, "
+"concurrency control and state management; while other mechanisms, such as "
+"object storage and transactions, are implemented as <classname>TxCore</"
+"classname> objects that are created and manipulated like any other object."
+msgstr ""
+"从面向对象的角度来看,构建可靠的分布式应用程序所需的机制以面向对象的方式呈现在程序员前面。某些机制需要被继承,如并行控制和状态管理;而另外一些机制,如对象存储和事务,被实现为象其他任何对象一样创建和操作的 <classname>TxCore</"
+"classname> 对象。"
+
+#. Tag: para
+#: Chapter.xml:20
+#, no-c-format
+msgid ""
+"When the manual talks about using persistence and concurrency control "
+"facilities it assumes that the <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) classes are being used. If this is not the case then the "
+"programmer is responsible for all of these issues."
+msgstr ""
+"当谈及持久性和并发控制机制时,我们假定使用了 <emphasis>Transactional Objects for Java</"
+"emphasis> (TXOJ) 类。如果不是这样的话,程序员要自己来处理所有这些问题。"
+
+#. Tag: para
+#: Chapter.xml:22
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> exploits object-oriented techniques to present "
+"programmers with a toolkit of Java classes from which application classes "
+"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 "<classname>TxCore</classname> 使用面向对象的技术为程序员提供一个 Java 类的工具集,应用程序的类可以继承它们来获取所需的属性,如持久性和并发控制。这些类组成一个层次结构,下面是其中一部分,本文档在后面将对其进行讨论。"
+
+#. Tag: caption
+#: Chapter.xml:28
+#, no-c-format
+msgid "Txcore class hierarchy"
+msgstr "Txcore 的类层次结构"
+
+#. Tag: para
+#: Chapter.xml:31
+#, no-c-format
+msgid ""
+"Apart from specifying the scopes of transactions, and setting appropriate "
+"locks within objects, the application programmer does not have any other "
+"responsibilities: <classname>TxCore</classname> and <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) guarantee that transactional objects will "
+"be registered with, and be driven by, the appropriate transactions, and "
+"crash recovery mechanisms are invoked automatically in the event of failures."
+msgstr ""
+"除了指定事务的作用域和设置对象内部的锁以外,程序员无需做其他事情:<classname>TxCore</classname> 和 <emphasis>Transactional "
+"Objects for Java</emphasis> (TXOJ) 保证了事务性对象将被注册,由合适的事务驱动,并在出现故障时自动调用崩溃恢复机制(crash recovery mechanism)。"
+
+#. Tag: title
+#: Chapter.xml:35
+#, no-c-format
+msgid "Saving object states"
+msgstr "保存对象状态"
+
+#. Tag: para
+#: Chapter.xml:37
+#, no-c-format
+msgid ""
+"<classname>TxCore</classname> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object) and persistence (the state represents the final "
+"state of an object at application termination). Since these requirements "
+"have common functionality they are all implemented using the same mechanism: "
+"the classes <classname>InputObjectState</classname> and "
+"<classname>OutputObjectState</classname>. The classes maintain an internal "
+"array into which instances of the standard types can be contiguously packed "
+"(unpacked) using appropriate <command>pack</command> (<command>unpack</"
+"command>) operations. This buffer is 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. Any other architecture independent format (such as XDR "
+"or ASN.1) could be implemented simply by replacing the operations with ones "
+"appropriate to the encoding required."
+msgstr ""
+"出于几种考虑,<classname>TxCore</classname> 需要记住对象的状态,如恢复(状态表示对象过去的某种状态)和持久性(状态代表应用程序终止时对象的最终状态)。这些要求都具有用相同机制实现的共同功能:<classname>InputObjectState</classname> 和 <classname>OutputObjectState</classname> 类。这些类维护一个内部的数组,其中的标准类型的实例可以持续地用合适的 <command>pack</command> (<command>unpack</"
+"command>) 操作进行处理。如果空间不够的话,缓冲会自动地根据需要调整大小。实例都以标准形式(所谓网络字节顺序)存储在缓冲里,这使得它们可以独立于主机类型。任何其他架构的格式(如 XDR 或 ASN.1)都可以简单地实现,只要用满足编码要求的操作替换相应的操作就可以了。"
+
+#. Tag: title
+#: Chapter.xml:43
+#, no-c-format
+msgid "The object store"
+msgstr "Object Store"
+
+#. Tag: para
+#: Chapter.xml:45
+#, no-c-format
+msgid ""
+"Implementations of persistence can be affected by restrictions imposed by "
+"the Java SecurityManager. Therefore, the object store provided with "
+"<classname>TxCore</classname> is implemented using the techniques of "
+"interface/implementation. The current distribution has implementations which "
+"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 "Java SecurityManager 强加的限制可能影响持久性的实现。因此,<classname>TxCore</classname> 提供的 object store 使用接口技术来实现。目前的发行版本包含的实现把对象状态写入到本地文件系统或数据库里,而其远程实现则通过接口使用一个客户端 stub(代理)访问远程服务。"
+
+#. Tag: para
+#: Chapter.xml:47
+#, no-c-format
+msgid ""
+"Persistent objects are assigned unique identifiers (instances of the Uid "
+"class), when they are created, and this is used to identify them within the "
+"object store. States are read using the <literal>read_committed</literal> "
+"operation and written by the <literal>write_(un)committed</literal> "
+"operations."
+msgstr "持久性对象在创建时被分配一个唯一的标识符(UID 类的实例),这被用来在 Object Store 内部进行标识。状态的读写分别通过 <literal>read_committed</literal> 和 <literal>write_(un)committed</literal> 操作进行。"
+
+#. Tag: title
+#: Chapter.xml:53
+#, no-c-format
+msgid "Recovery and persistence"
+msgstr "恢复和持久化"
+
+#. Tag: para
+#: Chapter.xml:54
+#, no-c-format
+msgid ""
+"At the root of the class hierarchy is the class <classname>StateManager</"
+"classname>. This class is responsible for object activation and deactivation "
+"and object recovery. The simplified signature of the class is:"
+msgstr ""
+"类层次结构的根部是 <classname>StateManager</"
+"classname> 类。这个类负责激活和取消激活对象以及恢复对象。它的简化签名是:"
+
+#. Tag: screen
+#: Chapter.xml:56
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"recoverable, in which case <classname>StateManager</classname> will attempt "
+"to generate and maintain appropriate recovery information for the object. "
+"Such objects have lifetimes that do not exceed the application program that "
+"creates them. Objects may be recoverable and persistent, in which case the "
+"lifetime of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the activate (deactivate) 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 "我们假设对象有 3 种可能的状态。它可能是可恢复的(recoverable),此时 <classname>StateManager</classname> 将试图生成并维护合适的对象恢复信息。这样的对象的生存时间不超过创建它的应用程序。对象也可能是可恢复且持久的(recoverable and persistent),此时它的生存时间将超过创建和访问它的应用程序,所以除了维护恢复信息以外,<classname>StateManager</classname> 还将在适当时候通过调用激活(取消激活)操作来试图加载(卸载)任何现有的持久性状态。最后,对象可能不具有这些能力中的任何一种,此时既不会保持恢复信息也不会自动尝试激活/取消激活对象。"
+
+#. Tag: para
+#: Chapter.xml:61
+#, no-c-format
+msgid ""
+"If an object is recoverable or recoverable and persistent then "
+"<classname>StateManager</classname> will invoke the operations "
+"<command>save_state</command> (while performing <command>deactivate</"
+"command>), and <command>restore_state</command> (while performing activate) "
+"at various points during the execution of the application. These operations "
+"must be implemented by the programmer since <classname>StateManager</"
+"classname> cannot detect user level state changes. (We are examining the "
+"automatic generation of default <command>save_state</command> and "
+"<command>restore_state</command> operations, allowing the programmer to "
+"override this when application specific knowledge can be used to improve "
+"efficiency.) This gives the programmer the ability to decide which parts of "
+"an object’s state should be made persistent. For example, for a spreadsheet "
+"it may not be necessary to save all entries if some values can simply be "
+"recomputed. The <command>save_state</command> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"如果某个对象是可恢复的(recoverable)或可恢复及持久的(recoverable and persistent),那么<classname>StateManager</classname> 将在应用程序执行过程中的不同时间调用 <command>save_state</command>(执行 <command>deactivate</"
+"command> 时)和 <command>restore_state</command>(执行 activate 时)操作。既然 <classname>StateManager</"
+"classname> 不能够检测用户级别的状态变化,程序员必须实现这些操作。(我们正在考虑自动生成缺省的 <command>save_state</command> 和 "
+"<command>restore_state</command> 操作,并在可以提高效率的情况下允许程序员对其进行覆盖。)这使得程序员能够决定对象状态的哪些部分应该持久化。例如,对于一个电子表格来说,如果某些值只是简单的重复计算结果,你没有必要存储所有的条目。具有整型成员变量 A、B 和 C 的 <classname>Example</classname> 类的 <command>save_state</command> 实现可以仅仅是:"
+
+#. Tag: screen
+#: Chapter.xml:63
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Objects are assumed to be of three possible flavours. They may simply be "
+"<emphasis>recoverable</emphasis>, in which case <classname>StateManager</"
+"classname> will attempt to generate and maintain appropriate recovery "
+"information for the object. Such objects have lifetimes that do not exceed "
+"the application program that creates them. Objects may be "
+"<emphasis>recoverable and persistent</emphasis>, in which case the lifetime "
+"of the object is assumed to be greater than that of the creating or "
+"accessing application, so that in addition to maintaining recovery "
+"information <classname>StateManager</classname> will attempt to "
+"automatically load (unload) any existing persistent state for the object by "
+"calling the <classname>activate</classname> (<classname>deactivate</"
+"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 "我们假设对象有 3 种可能的状态。它可能是可恢复的(recoverable),此时 <classname>StateManager</classname> 将试图生成并维护合适的对象恢复信息。这样的对象的生存时间不超过创建它的应用程序。对象也可能是可恢复且持久的(recoverable and persistent),此时它的生存时间将超过创建和访问它的应用程序,所以除了维护恢复信息以外,<classname>StateManager</classname> 还将在适当时候通过调用激活(取消激活)操作来试图加载(卸载)任何现有的持久性状态。最后,对象可能不具有这些能力中的任何一种,此时既不会保持恢复信息也不会自动尝试激活/取消激活对象。"
+
+#. Tag: para
+#: Chapter.xml:67
+#, no-c-format
+msgid ""
+"If an object is <emphasis>recoverable</emphasis> or <emphasis>recoverable "
+"and persistent</emphasis> then <classname>StateManager</classname> will "
+"invoke the operations <command>save_state</command> (while performing "
+"<command>deactivate</command>), and <command>restore_state</command> (while "
+"performing <command>activate</command>) at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> cannot detect user "
+"level state changes. (We are examining the automatic generation of default "
+"<classname>save_state</classname> and <classname>restore_state</classname> "
+"operations, allowing the programmer to override this when application "
+"specific knowledge can be used to improve efficiency.) This gives the "
+"programmer the ability to decide which parts of an object’s state should be "
+"made persistent. For example, for a spreadsheet it may not be necessary to "
+"save all entries if some values can simply be recomputed. The "
+"<classname>save_state</classname> implementation for a class "
+"<classname>Example</classname> that has integer member variables called A, B "
+"and C could simply be:"
+msgstr ""
+"如果某个对象是可恢复的(<emphasis>recoverable</emphasis>)或可恢复及持久的(<emphasis>recoverable "
+"and persistent</emphasis>),那么<classname>StateManager</classname> 将在应用程序执行过程中的不同时间调用 <command>save_state</command>(执行 <command>deactivate</"
+"command> 时)和 <command>restore_state</command>(执行 <command>activate</command> 时)操作。既然 <classname>StateManager</"
+"classname> 不能够检测用户级别的状态变化,程序员必须实现这些操作。(我们正在考虑自动生成缺省的 <command>save_state</command> 和 "
+"<command>restore_state</command> 操作,并在可以提高效率的情况下允许程序员对其进行覆盖。)这使得程序员能够决定对象状态的哪些部分应该持久化。例如,对于一个电子表格来说,如果某些值只是简单的重复计算结果,你没有必要存储所有的条目。具有整型成员变量 A、B 和 C 的 <classname>Example</classname> 类的 <command>save_state</command> 实现可以仅仅是:"
+
+#. Tag: screen
+#: Chapter.xml:69
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"It is necessary for all <command>save_state</command> and "
+"<command>restore_state</command> methods to call <classname>super.save_state "
+"</classname>and <classname>super.restore_state</classname>. This is to cater "
+"for improvements in the crash recovery mechanisms."
+msgstr ""
+"所有的 <command>save_state</command> 和 "
+"<command>restore_state</command> 方法都有必要调用 <classname>super.save_state "
+"</classname> 和 <classname>super.restore_state</classname>。这是为了顾及崩溃恢复机制里的性能问题。"
+
+#. Tag: title
+#: Chapter.xml:74
+#, no-c-format
+msgid "The life-cycle of a Transactional Object for Java"
+msgstr "Transactional Object for Java 的生命周期"
+
+#. Tag: para
+#: Chapter.xml:76
+#, no-c-format
+msgid ""
+"A persistent object not in use is assumed to be held in a <emphasis>passive</"
+"emphasis> state with its state residing in an object store and "
+"<emphasis>activated</emphasis> on demand. The fundamental life cycle of a "
+"persistent object in <emphasis>TXOJ</emphasis> is shown in <xref linkend="
+"\"figure_2\"/>."
+msgstr ""
+"我们假定未使用的持久性对象保持 <emphasis>passive</"
+"emphasis> 状态且状态保留在 object store 里,需要时可转换成 <emphasis>activated</emphasis> 状态。<xref linkend="
+"\"figure_2\"/> 里展示了 <emphasis>TXOJ</emphasis> 里的持久性对象的基本生命周期。"
+
+#. Tag: caption
+#: Chapter.xml:82
+#, no-c-format
+msgid "The lifecycle of a persistent object."
+msgstr "持久性对象的生命周期。"
+
+#. Tag: para
+#: Chapter.xml:86
+#, no-c-format
+msgid ""
+"The object is initially passive, and is stored in the object store as an "
+"instance of the class <classname>OutputObjectState</classname>."
+msgstr "对象的状态初始时为 passive,作为 <classname>OutputObjectState</classname> 类的实例保存在 object store 里。"
+
+#. Tag: para
+#: Chapter.xml:87
+#, no-c-format
+msgid ""
+"When required by an application the object is automatically activated by "
+"reading it from the store using a <command>read_committed</command> "
+"operation and is then converted from an <classname>InputObjectState</"
+"classname> instance into a fully-fledged object by the "
+"<command>restore_state</command> operation of the object."
+msgstr ""
+"当应用程序需要时,<command>read_committed</command> 操作从 Object Store 里读取对象并自动激活它,且通过 <command>restore_state</command> 操作从 <classname>InputObjectState</"
+"classname> 实例转换成 fully-fledged 对象。"
+
+#. Tag: para
+#: Chapter.xml:88
+#, no-c-format
+msgid ""
+"When the application has finished with the object it is deactivated by "
+"converting it back into an <classname>OutputObjectState</classname> instance "
+"using the <command>save_state</command> operation, and is then stored back "
+"into the object store as a shadow copy using write_uncommitted. This shadow "
+"copy can be committed, overwriting the previous version, using the "
+"<command>commit_state</command> operation. The existence of shadow copies is "
+"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 "当应用程序已经结束运行,它用 <command>save_state</command> 操作将对象转换成 <classname>OutputObjectState</classname> 实例来取消激活,然后用 write_uncommitted 操作把对象作为影子拷贝(shadow copy)存回到 object store 里。这个影子拷贝可以用 <command>commit_state</command> 操作提交并覆盖前面的版本。事务系统通常向程序于隐藏现有的影子拷贝。对象的取消激活通常只在激活对象的顶级事务提交时才发生。"
+
+#. Tag: para
+#: Chapter.xml:91
+#, no-c-format
+msgid ""
+"During its life time, a persistent object may be made active then passive "
+"many times."
+msgstr "在其生存期间,持久性对象可以多次被激活和钝化。"
+
+#. Tag: title
+#: Chapter.xml:96
+#, no-c-format
+msgid "The concurrency controller"
+msgstr "并行控制器"
+
+#. Tag: para
+#: Chapter.xml:98
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. As with "
+"<classname>StateManager</classname> and persistence, concurrency control "
+"implementations are accessed through interfaces. As well as providing access "
+"to remote services, the current implementations of concurrency control "
+"available to interfaces include:"
+msgstr "<classname>LockManager</classname> 类实现了并行控制器(concurrency controller),它提供智能的缺省行为,但又允许程序员在必要时进行覆盖。和 <classname>StateManager</classname> 和持久性一样,并行控制实现也是通过接口来进行访问。除了提供对远程服务的访问,目前并行控制的实现包括:"
+
+#. Tag: para
+#: Chapter.xml:101
+#, no-c-format
+msgid ""
+"local disk/database implementation, where locks are made persistent by being "
+"written to the local file system or database."
+msgstr "本地磁盘/数据库实现,通过写入本地文件系统或数据库使锁持久化。"
+
+#. Tag: para
+#: Chapter.xml:102
+#, no-c-format
+msgid ""
+"a purely local implementation, where locks are maintained within the memory "
+"of the virtual machine which created them; this implementation has better "
+"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 "纯本地实现,锁在创建它的虚拟机的内存里进行维护。和写入本地磁盘相比,这个实现具有更好的性能,但对象不能在虚拟机之间共享。重要的是,这是一个基本的 Java 对象,它不具备 SecurityManager 能影响的需求。"
+
+#. Tag: para
+#: Chapter.xml:105
+#, no-c-format
+msgid ""
+"The primary programmer interface to the concurrency controller is via the "
+"setlock operation. By default, the runtime system enforces strict two-phase "
+"locking following a multiple reader, single writer policy on a per object "
+"basis. However, as shown in <xref linkend=\"figure_1\"/>, by inheriting from "
+"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 "并行控制器的主要编程接口是通过 setlock 操作来实现。在缺省情况下,对每个对象,运行系统在多个 reader、单一 writer 策略之后,都强制严格的两阶段锁定。然而,如 <xref linkend=\"figure_1\"/> 所示,通过继承 <classname>Lock</classname> 类,程序员有可能提供自己的锁实现以及不同的锁冲突规则来启用<firstterm>类型专有的并行控制(type specific concurrency control)</firstterm>。"
+
+#. Tag: para
+#: Chapter.xml:107
+#, no-c-format
+msgid ""
+"Lock acquisition is (of necessity) under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is 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 "既然 <classname>StateManager</classname> 不能决定某个操作是否修改了对象,<classname>LockManager</classname> 不能决定某个操作是否要求读或写锁,程序员需要控制对锁的获取。然而,锁的释放是由系统控制的,且不需要程序员的进一步干预。这确保可以维护正确的两阶段的属性。"
+
+#. Tag: screen
+#: Chapter.xml:109
+#, no-c-format
+msgid ""
+"public abstract class LockManager extends StateManager\n"
+"{\n"
+"    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
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, <classname>LockManager</classname> assumes that the "
+"setting of a write lock implies that the invoking operation must be about to "
+"modify the object. This may in turn cause recovery information to be saved "
+"if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes activate to be invoked."
+msgstr ""
+"<classname>LockManager</classname> 类主要负责管理为对象设置锁的请求或者酌情释放锁。然而,既然它来源于 <classname>StateManager</"
+"classname>,它也可以控制是否调用某些继承的功能。例如,<classname>LockManager</classname> 假定写锁的设定暗示着调用操作必须修改对象。反过来如果对象是可恢复的,这会导致对恢复信息的保存。类似地,对锁的成功获取导致激活操作的调用。"
+
+#. 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 "下面的代码展示了我们如何获取对象的写锁:"
+
+#. Tag: screen
+#: Chapter.xml:115
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "事务协议引擎"
+
+#. Tag: para
+#: Chapter.xml:122
+#, no-c-format
+msgid ""
+"The transaction protocol engine is represented by the "
+"<classname>AtomicAction</classname> class, which uses "
+"<classname>StateManager</classname> in order to record sufficient "
+"information for crash recovery mechanisms to complete the transaction in the "
+"event of failures. It has methods for starting and terminating the "
+"transaction, and, for those situations where programmers require to "
+"implement their own resources, methods for registering them with the current "
+"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 "事务协议引擎(transaction protocol engine)由 <classname>AtomicAction</classname> 类代表,它使用 <classname>StateManager</classname> 为崩溃恢复机制记录足够的信息以便在发生故障时完成事务。它具有启动和终止事务的方法,以及在程序员需要实现自己的资源时向当前事务注册的方法。因为 <emphasis>TxCore</emphasis> 支持子事务,如果事务以已经运行的事务的作用域开始,那么它将自动地进行嵌套。"
+
+#. Tag: para
+#: Chapter.xml:124
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> is multi-threaded aware, allowing each thread "
+"within an application to share a transaction or execute within its own "
+"transaction. Therefore, all <emphasis>TxCore</emphasis> classes are also "
+"thread safe."
+msgstr "<emphasis>TxCore</emphasis> 可识别多线程,它允许应用程序里的每个线程共享一个事务或者在自己的事务里运行。因此,所有的 <emphasis>TxCore</emphasis> 类也线程安全的(thread safe)。"
+
+#. Tag: title
+#: Chapter.xml:128
+#, no-c-format
+msgid "Example"
+msgstr "示例"
+
+#. Tag: para
+#: Chapter.xml:130
+#, no-c-format
+msgid ""
+"The simple example below illustrates the relationships between activation, "
+"termination and commitment:"
+msgstr "下面这个简单的示例演示了激活(activation)、终止(termination)和提交(commitment)之间的关系:"
+
+#. Tag: screen
+#: Chapter.xml:132
+#, no-c-format
+msgid ""
+"{\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) */"
+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
+#, no-c-format
+msgid ""
+"The execution of the above code involves the following sequence of "
+"activities:"
+msgstr "上面代码的执行涉及了下面的活动序列:"
+
+#. Tag: para
+#: Chapter.xml:137
+#, no-c-format
+msgid ""
+"Creation of bindings to persistent objects; this could involve the creation "
+"of stub objects and a call to remote objects. In the above example we re-"
+"bind to an existing persistent object identified by <literal>Name-A</"
+"literal>, and a new persistent object. A naming system for remote objects "
+"maintains the mapping between object names and locations and is described in "
+"a later chapter."
+msgstr ""
+"创建对持久性对象绑定;这可能涉及 stub 对象的创建以及对远程对象的调用。在上面的例子里,我们重新绑定了一个现有的持久性对象 <literal>Name-A</"
+"literal> 和一个新的持久性对象。远程对象的命名系统维护着对象名和位置的映射,我们在后面的章节里将进行介绍。"
+
+#. Tag: para
+#: Chapter.xml:138
+#, no-c-format
+msgid "Start of the atomic transaction."
+msgstr "原子事务的启动。"
+
+#. Tag: para
+#: Chapter.xml:139
+#, no-c-format
+msgid ""
+"Operation invocations: as a part of a given invocation the object "
+"implementation is responsible to ensure that it is locked in read or write "
+"mode (assuming no lock conflict), and initialised, if necessary, with the "
+"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 "操作调用: 作为给定调用的一部分,对象实现负责确保它在读或写模式下(假设没有锁突)被锁定并初始化,如果必要的话,使用 Object Store 里最新提交的状态。锁在事务里第一次被获取时,如果可能的话,对象的状态将从 Object Store 里获得。"
+
+#. Tag: para
+#: Chapter.xml:140
+#, no-c-format
+msgid ""
+"Commit of the top-level action. This includes updating of the state of any "
+"modified objects in the object store."
+msgstr "顶层动作的提交。这包括更新 Object Store 里任何被修改的对象的状态。"
+
+#. Tag: para
+#: Chapter.xml:141
+#, no-c-format
+msgid "Breaking of the previously created bindings."
+msgstr "破坏之前创建的绑定。"
+
+#. Tag: title
+#: Chapter.xml:147
+#, no-c-format
+msgid "The class hierarchy"
+msgstr "类层次结构"
+
+#. Tag: para
+#: Chapter.xml:149
+#, no-c-format
+msgid ""
+"The principal classes which make up the class hierarchy of <emphasis>TxCore</"
+"emphasis> are depicted below."
+msgstr ""
+"下面是组成 <emphasis>TxCore</"
+"emphasis> 的类层次结构主要的类。"
+
+#. Tag: screen
+#: Chapter.xml:151
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Programmers of fault-tolerant applications will be primarily concerned with "
+"the classes <classname>LockManager</classname>, <classname>Lock</classname> "
+"and <classname>AtomicAction</classname>. Other classes important to a "
+"programmer are <classname>Uid</classname>, and <classname>ObjectState</"
+"classname>. Most <emphasis>TxCore</emphasis> classes are derived from the "
+"base class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"<classname>Lock</classname> to provide the concurrency control (two-phase "
+"locking in the current implementation) required for implementing the "
+"serialisability property of atomic actions. The implementation of atomic "
+"action facilities is supported by <classname>AtomicAction</classname> and "
+"<classname>TopLevelTransaction</classname>."
+msgstr ""
+"编写容错应用程序的程序员将主要关心 <classname>LockManager</classname>、 <classname>Lock</classname> 和 <classname>AtomicAction</classname> 类。对于程序员来说,其他重要的类是 <classname>Uid</classname> 和 <classname>ObjectState</"
+"classname>。大多数 <emphasis>TxCore</emphasis> 系统类都源自基类 <classname>StateManager</classname>,它为管理持久的和可恢复的对象提供必要的原始功能。这些功能包括对对象激活和取消激活的支持,以及基于状态的对象恢复。<classname>LockManager</"
+"classname> 类使用 <classname>StateManager</classname> 的功能并提供实现原子动作的 serialisability 属性所需的并行控制(当前实现里的两阶段锁定)。<classname>AtomicAction</classname> 和 "
+"<classname>TopLevelTransaction</classname> 支持对原子动作的实现。"
+
+#. Tag: para
+#: Chapter.xml:155
+#, no-c-format
+msgid ""
+"Most <emphasis>TxCore</emphasis> system classes are derived from the base "
+"class <classname>StateManager</classname>, which provides primitive "
+"facilities necessary for managing persistent and recoverable objects. These "
+"facilities include support for the activation and de-activation of objects, "
+"and state-based object recovery. The class <classname>LockManager</"
+"classname> uses the facilities of <classname>StateManager</classname> and "
+"provides the concurrency control required for implementing the "
+"serialisability property of atomic actions."
+msgstr ""
+"大多数 <emphasis>TxCore</emphasis> 系统类都源自基类 <classname>StateManager</classname>,它为管理持久的和可恢复的对象提供必要的原始功能。这些功能包括对对象激活和取消激活的支持,以及基于状态的对象恢复。<classname>LockManager</"
+"classname> 类使用 <classname>StateManager</classname> 的功能并提供实现原子动作的 serialisability 属性所需的并行控制。"
+
+#. Tag: para
+#: Chapter.xml:157
+#, no-c-format
+msgid ""
+"Consider a simple example. Assume that <classname>Example</classname> is a "
+"user-defined persistent class suitably derived from the "
+"<classname>LockManager</classname>. An application containing an atomic "
+"transaction Trans accesses an object (called O) of type <classname>Example</"
+"classname> by invoking the operation op1 which involves state changes to O. "
+"The serialisability property requires that a write lock must be acquired on "
+"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 ""
+"让我们看一个简单的例子。假设 <classname>Example</classname> 是一个用户定义的、源自 <classname>LockManager</classname> 的持久性对象。包含原子事务(Trans)的应用程序通过调用 op1 操作(涉及对象 O 的状态改变)访问类型为 <classname>Example</"
+"classname> 的对象(称为 O)。serialisability 属性要求在对对象 O 进行修改之前,必须获取它的写锁;因此 op1 的内容必须包含对并行控制器的 <literal>setlock</literal> 操作的调用。"
+
+#. Tag: screen
+#: Chapter.xml:159
+#, no-c-format
+msgid ""
+"public boolean op1 (...)\n"
+"{        \n"
+"    if (setlock (new Lock(LockMode.WRITE) == LockResult.GRANTED)\n"
+"    {\n"
+"        // actual state change operations follow \n"
+"        ...\n"
+"    }\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
+#, no-c-format
+msgid ""
+"The operation <literal>setlock</literal>, provided by the "
+"<classname>LockManager</classname> class, performs the following functions "
+"in this case:"
+msgstr "在这里,<classname>LockManager</classname> 类提供的 <literal>setlock</literal> 操作执行下面的功能:"
+
+#. Tag: para
+#: Chapter.xml:164
+#, no-c-format
+msgid "Check write lock compatibility with the currently held locks, and if allowed:"
+msgstr "检查写锁和当前持有的锁的兼容性,如果允许的话:"
+
+#. Tag: para
+#: Chapter.xml:165
+#, no-c-format
+msgid ""
+"Call the <classname>StateManager</classname> operation activate that will "
+"load, if not done already, the latest persistent state of O from the object "
+"store. Then call the <classname>StateManager</classname> operation modified "
+"which has the effect of creating an instance of either "
+"<classname>RecoveryRecord</classname> or <classname>PersistenceRecord</"
+"classname> for O depending upon whether O was persistent or not (the Lock is "
+"a <literal>WRITE</literal> lock so the old state of the object must be "
+"retained prior to modification) and inserting it into the "
+"<classname>RecordList</classname> of <classname>Trans</classname>."
+msgstr ""
+"调用 <classname>StateManager</classname> 的 activate 操作,如果还没完成的话,这将从 Object Store 载入 O 的最新持久性状态。然后调用 <classname>StateManager</classname> 的 modified 操作,它将影响为 O 创建的 <classname>RecoveryRecord</classname> 或 <classname>PersistenceRecord</"
+"classname> 的实例并将其插入到 <classname>Trans</classname> 的 <classname>RecordList</classname> 里,这取决于 O 是否是持久的(锁是 <literal>WRITE</literal> 锁,所以在修改前必须获取对象的旧的状态)。"
+
+#. Tag: para
+#: Chapter.xml:166
+#, no-c-format
+msgid "Create and insert a LockRecord instance in the RecordList of Trans."
+msgstr "创建并在 Trans 的 RecordList 里插入一个 LockRecord 实例。"
+
+#. Tag: para
+#: Chapter.xml:169
+#, no-c-format
+msgid ""
+"Now suppose that action <literal>Trans</literal> is aborted sometime after "
+"the lock has been acquired. Then the rollback operation of "
+"<classname>AtomicAction</classname> will process the <classname>RecordList</"
+"classname> instance associated with <literal>Trans</literal> by invoking an "
+"appropriate <literal>Abort</literal> operation on the various records. The "
+"implementation of this operation by the <classname>LockRecord</classname> "
+"class will release the <literal>WRITE</literal> lock while that of "
+"<classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> will restore the prior state of O."
+msgstr ""
+"现在假设在已经获取了锁以后,动作 <literal>Trans</literal> 在某个时间被取消了。<classname>AtomicAction</classname> 的 rollback 操作将在不同记录上调用合适的 <literal>Abort</literal> 操作来处理和 <literal>Trans</literal> 关联的 <classname>RecordList</"
+"classname> 实例。这个操作的实现 <classname>LockRecord</classname> 将释放 <literal>WRITE</literal> 锁,而 <classname>RecoveryRecord</classname>/<classname>PersistenceRecord</"
+"classname> 的实现将恢复 O 以前的状态。"
+
+#. Tag: para
+#: Chapter.xml:171
+#, no-c-format
+msgid ""
+"It is important to realise that all of the above work is automatically being "
+"performed by <emphasis>TxCore</emphasis> on behalf of the application "
+"programmer. The programmer need only start the transaction and set an "
+"appropriate lock; <emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> take care of participant registration, "
+"persistence, concurrency control and recovery."
+msgstr ""
+"明白上面所有的工作都是由 <emphasis>TxCore</emphasis> 代表应用程序程序员自动执行是很重要的。程序员只需要启动事务并设置一个合适的锁:<emphasis>TxCore</emphasis> and <emphasis>Transactional "
+"Objects for Java</emphasis> 将负责参与者的注册、持久化、并行控制和恢复。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_02.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_02.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_02.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1807 @@
+# translation of Chapter_02.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-03 15:44+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter_02.xml:6
+#, no-c-format
+msgid "Using TxCore"
+msgstr "使用 TxCore"
+
+#. Tag: title
+#: Chapter_02.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter_02.xml:11
+#, no-c-format
+msgid ""
+"In this section we shall describe <emphasis>TxCore</emphasis> and "
+"<emphasis>Transactional Objects for Java</emphasis> in more detail, and show "
+"how it can be used to construct transactional applications."
+msgstr ""
+"本节我们将描述 <emphasis>TxCore</emphasis> 和 <emphasis>Transactional Objects for "
+"Java</emphasis> 的更多细节,并展示如何用它们来构建事务性应用程序。"
+
+#. Tag: title
+#: Chapter_02.xml:15
+#, no-c-format
+msgid "State management"
+msgstr "状态管理"
+
+#. Tag: title
+#: Chapter_02.xml:18
+#, no-c-format
+msgid "Object States"
+msgstr "对象的状态"
+
+#. Tag: para
+#: Chapter_02.xml:20
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> needs to be able to remember the state of an "
+"object for several purposes, including recovery (the state represents some "
+"past state of the object), and for persistence (the state represents the "
+"final state of an object at application termination). Since all of these "
+"requirements require common functionality they are all implemented using the "
+"same mechanism - the classes <classname>Input/OutputObjectState</classname> "
+"and <classname>Input/OutputBuffer</classname>."
+msgstr ""
+"出于几种考虑,<classname>TxCore</classname> 需要记住对象的状态,如恢复(状态表>"
+"示对象过去的某种状态)和持久性(状态代表应用程序终止时对象的最终状态)。这些要求"
+"都具有用相同机制实现的共同功能:<classname>InputObjectState</classname> 和 <classname>"
+"OutputObjectState</classname> 类。"
+
+#. Tag: title
+#: Chapter_02.xml:22
+#, no-c-format
+msgid "OutputBuffer"
+msgstr "OutputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:24
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputBuffer"
+
+#. Tag: programlisting
+#: Chapter_02.xml:26
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Input/OutputBuffer</classname> class maintains an internal "
+"array into which instances of the standard Java types can be contiguously "
+"packed (unpacked) using the pack (unpack) operations. This buffer is "
+"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 ""
+"<classname>Input/OutputBuffer</classname> 类维护维护一个内部的数组,其中的标准类型"
+"的实例可以持续地用合适的 "
+"pack(unpack)操作进行处理。如果空间不够的话,缓冲会自动地根据需要调整大小。实例都以标准形式(所谓网络字节顺序)存储在缓冲里,这使得它们可以独立"
+"于主机类型。"
+
+#. Tag: title
+#: Chapter_02.xml:30 Chapter_02.xml:37
+#, no-c-format
+msgid "OutputObjectState"
+msgstr "OutputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:32
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "InputObjectState"
+
+#. Tag: programlisting
+#: Chapter_02.xml:51
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The class <classname>Input/OutputObjectState</classname> provides all the "
+"functionality of <classname>Input/OutputBuffer</classname> (through "
+"inheritance) but adds two additional instance variables that signify the Uid "
+"and type of the object for which the <classname>Input/OutputObjectState</"
+"classname> instance is a compressed image. These are used when accessing the "
+"object store during storage and retrieval of the object state."
+msgstr ""
+"<classname>Input/OutputObjectState</classname> 类提供 <classname>"
+"Input/OutputBuffer</classname> 的所有功能(通过继承),但添加了两个额外的实例变量来指定 UID 和代表 <"
+"classname>Input/OutputObjectState</classname> 实例的压缩映像的对象的类型。在存储和读取 Object "
+"Store 时要用到它们。"
+
+#. Tag: title
+#: Chapter_02.xml:60
+#, no-c-format
+msgid "The object store"
+msgstr "对象库(Object Store)"
+
+#. Tag: para
+#: Chapter_02.xml:62
+#, no-c-format
+msgid ""
+"The object store provided with <emphasis>TxCore</emphasis> deliberately has "
+"a fairly restricted interface so that it can be implemented in a variety of "
+"ways. For example, object stores are implemented in shared memory; on the "
+"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 ""
+"<classname>Input/OutputObjectState</classname> 提供的 Object Store "
+"故意具有一个相当受限的接口,这样就可以以不同的方式来实施。例如,Object Store 可以实施在共享内存里、在 Unix "
+"文件系统里(以不同的形式)以及作为可远程访问的库。关于 <emphasis>TxCore</emphasis> 的可用 Object Store "
+"的完整信息,你可以参考附录。"
+
+#. Tag: para
+#: Chapter_02.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+"和所有 <emphasis>TxCore</emphasis> 的类一样,缺省的 Object Store 也是纯 Java "
+"的实现。要访问共享内存和其他更为复杂的 Object Store 实现,使用 native 方法时必需的。"
+
+#. Tag: para
+#: Chapter_02.xml:66
+#, no-c-format
+msgid ""
+"All of the object stores hold and retrieve instances of the class "
+"<classname>Input/OutputObjectState</classname>. These instances are named by "
+"the Uid and Type of the object that they represent. States are read using "
+"the <command>read_committed</command> operation and written by the system "
+"using the <command>write_uncommitted</command> operation. Under normal "
+"operation new object states do not overwrite old object states but are "
+"written to the store as shadow copies. These shadows replace the original "
+"only when the <command>commit_state</command> operation is invoked. Normally "
+"all interaction with the object store is performed by <emphasis>TxCore</"
+"emphasis> system components as appropriate thus the existence of any shadow "
+"versions of objects in the store are hidden from the programmer."
+msgstr ""
+"所有的 Object Store 都保存并检索 <classname>Input/OutputObjectState</classname> "
+"类的实例。这些实例根据 UID 和它们所代表的对象的类型来命名。读取状态使用 <command>read_committed</command> "
+"操作而写入则使用 <command>write_uncommitted</command> "
+"操作。新的对象状态通常不覆盖旧的对象状态,而是以影子拷贝的方式写入。这些影子拷贝只有在 <command>commit_state</command> "
+"操作被调用时才替换原始的状态。通常,和 Object Store 的所有交互都通过 <emphasis>TxCore</emphasis> "
+"系统组件来执行,因此对于程序员来说,任何对象的影子版本都是隐藏的。"
+
+#. Tag: screen
+#: Chapter_02.xml:68
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"When a transactional object is committing it is necessary for it to make "
+"certain state changes persistent in order that it can recover in the event "
+"of a failure and either continue to commit, or rollback. When using "
+"<emphasis>Transactional Objects for Java</emphasis>, <emphasis>TxCore</"
+"emphasis> will take care of this automatically. To guarantee ACID "
+"properties, these state changes must be flushed to the persistence store "
+"implementation before the transaction can proceed to commit; if they are "
+"not, the application may assume that the transaction has committed when in "
+"fact the state changes may still reside within an operating system cache, "
+"and may be lost by a subsequent machine failure. By default, "
+"<emphasis>TxCore</emphasis> ensures that such state changes are flushed. "
+"However, doing so can impose a significant performance penalty on the "
+"application. To prevent transactional object state flushes, set the "
+"<literal>com.arjuna.ats.arjuna.objectstore.objectStoreSync</literal> "
+"variable to OFF."
+msgstr ""
+"当事务性对象被提交时,它有必要将某些状态的改变持久化,这样在出现故障时就能够恢复并继续提交或回滚。当使用 <emphasis>Transactional "
+"Objects for Java</emphasis> 时,<emphasis>TxCore</emphasis> 将自动处理这些事情。要确保 ACID "
+"属性,这些状态变化必须在事务可以继续提交之前冲刷至 persistence store "
+"实现里。如果没有这样做的话,应用程序可能假定事务已经提交,而实际上状态修改仍然驻留在操作系统的缓存里,并可能在随后出现主机故障时丢失。在缺省情况下,<em"
+"phasis>TxCore</emphasis> "
+"将确保这样的状态修改被冲刷。然而,这样做会明显地降低应用程序的性能。要阻止事务性对象的状态冲刷,你可以把 <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 "选择 Object Store 实现"
+
+#. Tag: para
+#: Chapter_02.xml:76
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. The Appendix describes these implementations, how to "
+"select and configure a given implementation (using the <literal>com.arjuna."
+"ats.arjuna.objectstore.objectStoreType</literal> property variable) on a per "
+"object basis, and indicates how additional implementations can be provided."
+msgstr ""
+"<emphasis>TxCore</emphasis> 支持几种不同的 Object Store "
+"的实现。附录里描述了这些实现以及如何为每个对象选择和配置实现(使用 <literal>com.arjuna.ats.arjuna.objectstore."
+"objectStoreType</literal> 属性变量),并指出怎样提供其他的实现。"
+
+#. Tag: title
+#: Chapter_02.xml:84
+#, no-c-format
+msgid "StateManager"
+msgstr "StateManager"
+
+#. Tag: para
+#: Chapter_02.xml:86
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> class <classname>StateManager</classname> "
+"manages the state of an object and provides all of the basic support "
+"mechanisms required by an object for state management purposes. "
+"<classname>StateManager</classname> is responsible for creating and "
+"registering appropriate resources concerned with the persistence and "
+"recovery of the transactional object. If a transaction is nested, then "
+"<classname>StateManager</classname> will also propagate these resources "
+"between child transactions and their parents at commit time."
+msgstr ""
+"<emphasis>TxCore</emphasis> çš„ <classname>StateManager</classname> "
+"类管理对象的状态并提供用于状态管理目的的对象所需的基本支持机制。<classname>StateManager</classname> "
+"负责创建和注册和事务性对象的持久化和恢复相关的合适资源。如果事务是嵌套的,那么 <classname>StateManager</classname> "
+"也将在提交时在子事务和父事务间传递这些资源。"
+
+#. Tag: para
+#: Chapter_02.xml:88
+#, no-c-format
+msgid ""
+"Objects in <emphasis>TxCore</emphasis> are assumed to be of three possible "
+"basic flavours. They may simply be recoverable, in which case "
+"<classname>StateManager</classname> will attempt to generate and maintain "
+"appropriate recovery information for the object (as instances of the class "
+"<classname>Input/OutputObjectState</classname>) . Such objects have "
+"lifetimes that do not exceed the application program that creates them. "
+"Objects may be recoverable and persistent, in which case the lifetime of the "
+"object is assumed to be greater than that of the creating or accessing "
+"application so that in addition to maintaining recovery information "
+"<classname>StateManager</classname> will attempt to automatically load "
+"(unload) any existing persistent state for the object by calling the "
+"<command>activate</command> (<command>deactivate</command>) 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. This object property is selected "
+"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 ""
+"我们假设 <emphasis>TxCore</emphasis> 里的对象有 3 种可能的状态。它可能是可恢复的(recoverable),此时 <"
+"classname>StateManager</classname> 将为这个对象(<classname>"
+"Input/OutputObjectState</classname> "
+"的实例)试图生成并维护合适的对象恢复信息。这样的对象的生存时间不超过创建它的应用程序。对象也可能是可恢复且持久的(recoverable and "
+"persistent),此时它的生存时间将超过创建和访问它的应用程序,所以除了维护恢复信息以"
+"外,<classname>StateManager</classname> 还将在适当时候通过调用 <command>activate</command>"
+"(<command>deactivate</command>)操"
+"作来试图加载(卸载)任何现有的持久性状态。最后,对象可能不具有这些状态中的任何一"
+"种,此时既不会保持恢复信息也不会自动尝试激活/取消激活对象。这个对象属性在构建时选定且不能再改动。因此对象在其生存期间并不能够获得(或丢失)恢复能力。"
+
+#. Tag: screen
+#: Chapter_02.xml:92
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"If an object is recoverable (or persistent) then <classname>StateManager</"
+"classname> will invoke the operations <command>save_state</command> (while "
+"performing <command>deactivation</command>), <command>restore_state</"
+"command> (while performing activate) and type at various points during the "
+"execution of the application. These operations must be implemented by the "
+"programmer since <classname>StateManager</classname> does not have access to "
+"a runtime description of the layout of an arbitrary Java object in memory "
+"and thus cannot implement a default policy for converting the in memory "
+"version of the object to its passive form. However, the capabilities "
+"provided by <classname>Input/OutputObjectState</classname> make the writing "
+"of these routines fairly simple. For example, the <command>save_state</"
+"command> implementation for a class <classname>Example</classname> that had "
+"member variables called A, B and C could simply be the following:"
+msgstr ""
+"如果某个对象是可恢复的(recoverable)或可恢复及持久的(recoverable and persistent),那么<classname>StateManager</classname> 将在应用程序执行过程中的不同时间调"
+"用 <command>save_state</command>(执行 <command>deactivate</"
+"command> 时)和 <command>restore_state</command>(执行 activate 时)操作。既然 <classname>StateManager</classname> 不能够检测用户级别的状态变化,程序员必须实现这些操作。(我们正在考虑"
+"自动生成缺省的 <command>save_state</command> 和 "
+"<command>restore_state</command> 操作,并在可以提高效率的情况下允许程序员对其进"
+"行覆盖。)这使得程序员能够决定对象状态的哪些部分应该持久化。例如,对于一个电子表"
+"格来说,如果某些值只是简单的重复计算结果,你没有必要存储所有的条目。具有整型成员"
+"变量 A、B 和 C 的 <classname>Example</classname> 类的 <command>save_state</command> 实现可以仅仅是:"
+
+#. Tag: screen
+#: Chapter_02.xml:96
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"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 ""
+"为了支持持久性对象的崩溃恢复,用户对象的所有 <command>save_state</command> 和 <command>restore_state</command> 方法都有必要调用 <command>super.save_state</command> 和 "
+"<command>super.restore_state</command>。"
+
+#. Tag: para
+#: Chapter_02.xml:100 Chapter_02.xml:182
+#, no-c-format
+msgid ""
+"The type method is used to determine the location in the object store where "
+"the state of instances of that class will be saved and ultimately restored. "
+"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 "type 方法用来决定实例将在 Object Store 里保存和最终恢复的位置。这实际上可以是任何有效的字符串。然而,你应该避免使用井号(#),因为它是用于 <emphasis>TxCore</emphasis> 所要求的特殊目录的保留字。"
+
+#. Tag: para
+#: Chapter_02.xml:102
+#, no-c-format
+msgid ""
+"The <command>get_uid</command> operation of <classname>StateManager</"
+"classname> provides read only access to an object’s internal system name for "
+"whatever purpose the programmer requires (such as registration of the name "
+"in a name server). The value of the internal system name can only be set "
+"when an object is initially constructed - either by the provision of an "
+"explicit parameter or by generating a new identifier when the object is "
+"created."
+msgstr ""
+"<classname>StateManager</"
+"classname> 的 <command>get_uid</command> 操作返回只读的对象的内部系统名称,它可用于任何目的,例如程序员可用来在命名服务器里注册。你只能在对象构建时设置内部系统名称的值 - 通过显性参数或在创建对象时生成新的标识符。"
+
+#. Tag: para
+#: Chapter_02.xml:104
+#, no-c-format
+msgid ""
+"The <command>destroy</command> method can be used to remove the object’s "
+"state from the object store. This is an atomic operation, and therefore will "
+"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 "<command>destroy</command> 方法可用来从 Object Store 里删除对象的状态。这是一个原子操作,因此只能在这个调用所处的顶层事务最终提交时才能进行完成。在调用此操作之前,程序员必须获取对对象的独占访问。"
+
+#. Tag: para
+#: Chapter_02.xml:106
+#, no-c-format
+msgid ""
+"Since object recovery and persistence essentially have complimentary "
+"requirements (the only difference being where state information is stored "
+"and for what purpose) <classname>StateManager</classname> effectively "
+"combines the management of these two properties into a single mechanism. "
+"That is, it uses instances of the class Input/OutputObjectState both for "
+"recovery and persistence purposes. An additional argument passed to the "
+"<command>save_state</command> and <command>restore_state</command> "
+"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 "既然对象的恢复和持久化本来都有类似的需求(唯一不同的是状态信息保存的地方和目的)。<classname>StateManager</classname> 有效地把这两种属性组合到了单一的机制里。那就是,它把 Input/OutputObjectState 类的实例既用于恢复也用于持久化。传递给 <command>save_state</command> 和 <command>restore_state</command> 的另外一个参数允许程序员决定任何调用的目的,这就可以保存用于恢复和持久化的不同信息。"
+
+#. Tag: title
+#: Chapter_02.xml:112
+#, no-c-format
+msgid "Object Models"
+msgstr "对象模型"
+
+#. Tag: para
+#: Chapter_02.xml:114
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> supports two models for objects, which as we "
+"shall show affect how an objects state and concurrency control are "
+"implemented:"
+msgstr "<emphasis>TxCore</emphasis> 支持两种对象模型,我们来看看它们是如何影响对象状态和并行控制的实施的:"
+
+#. Tag: para
+#: Chapter_02.xml:117
+#, no-c-format
+msgid ""
+"<termdef>SINGLE</termdef>: only a single copy of the object exists within "
+"the application; this will reside within a single JVM, and all clients must "
+"address their invocations to this server. This model provides better "
+"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 "<termdef>SINGLE</termdef>:应用程序只存在对象的单一拷贝;这将驻留在单一的 JVM 里,所有的客户都必须解决对这个服务器的调用。这种模型提供了更好的性能,但也导致了单一的故障点,在多线程的环境里如果某一线程崩溃的话,它可能不能保护对象。"
+
+#. Tag: caption
+#: Chapter_02.xml:123
+#, no-c-format
+msgid "Single Object Model"
+msgstr "Single 对象模型"
+
+#. Tag: para
+#: Chapter_02.xml:127
+#, no-c-format
+msgid ""
+"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 "MULTIPLE:逻辑上来说只存在对象的单一实例,但其拷贝可以在不同的 JVM 间传递;这种模型的性能比 SINGLE 模型要差,但它提供了更好的容错能力。"
+
+#. Tag: caption
+#: Chapter_02.xml:134
+#, no-c-format
+msgid "Multiple Object Model"
+msgstr "Multiple 对象模型"
+
+#. Tag: para
+#: Chapter_02.xml:139
+#, no-c-format
+msgid ""
+"The default model is SINGLE. The programmer can override this on a per "
+"object basis by providing an appropriate instance of the <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> class at object "
+"construction."
+msgstr ""
+"SINGLE 是缺省的对象模型。对于每个对象,程序员都可以用合适的 <classname>com."
+"arjuna.ats.arjuna.gandiva.ObjectName</classname> 实例覆盖它。"
+
+#. Tag: para
+#: Chapter_02.xml:141
+#, no-c-format
+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 "你可以在对象后续的每次实例化之间修改模型,也就是说,在对象的生存期间模型不需要维持不变。"
+
+#. Tag: para
+#: Chapter_02.xml:143
+#, no-c-format
+msgid ""
+"To provide a suitable <classname>ObjectName</classname> class, it is "
+"necessary to perform the following steps:"
+msgstr "要提供合适的 <classname>ObjectName</classname> 类,你有必要执行下面的步骤:"
+
+#. Tag: para
+#: Chapter_02.xml:148
+#, no-c-format
+msgid "create a new instance of <classname>ObjectName</classname>."
+msgstr "创建一个新的 <classname>ObjectName</classname> 实例。"
+
+#. Tag: para
+#: Chapter_02.xml:149
+#, no-c-format
+msgid ""
+"set the object model attribute using the <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> name."
+msgstr ""
+"用 <literal>com.arjuna.ats.arjuna."
+"ArjunaNames.StateManager_objectModel()</literal> 名称设置对象模型属性。"
+
+#. Tag: para
+#: Chapter_02.xml:152
+#, no-c-format
+msgid "For example:"
+msgstr "例如:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:154
+#, no-c-format
+msgid ""
+"{\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"
+"                }"
+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 "总结"
+
+#. Tag: para
+#: Chapter_02.xml:163
+#, no-c-format
+msgid ""
+"In summary, the <emphasis>TxCore</emphasis> class <classname>StateManager</"
+"classname> manages the state of an object and provides all of the basic "
+"support mechanisms required by an object for state management purposes. Some "
+"operations must be defined by the class developer. These operations are: "
+"<command>save_state</command>, <command>restore_state</command>, and "
+"<command>type</command>."
+msgstr ""
+"总的来说,<emphasis>TxCore</emphasis> 的 <classname>StateManager</"
+"classname> 类管理对象的状态并提供所有用于状态管理目的的基本支持。类开发人员必须定义这样一些操作:<command>save_state</command>、<command>restore_state</command> 和 "
+"<command>type</command>。"
+
+#. Tag: literal
+#: Chapter_02.xml:167
+#, no-c-format
+msgid "boolean save_state (OutputObjectState state, int ObjectType)"
+msgstr "boolean save_state (OutputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:168
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object might need to be saved for future "
+"use - primarily for recovery or persistence purposes. The "
+"<literal>ObjectType</literal> parameter indicates the reason that "
+"<command>save_state</command> was invoked by <emphasis>TxCore</emphasis>. "
+"This enables the programmer to save different pieces of information into the "
+"<classname>OutputObjectState</classname> supplied as the first parameter "
+"depending upon whether the state is needed for recovery or persistence "
+"purposes. For example, pointers to other <emphasis>TxCore</emphasis> objects "
+"might be saved simply as pointers for recovery purposes but as Uid’s for "
+"persistence purposes. As shown earlier, the <classname>OutputObjectState</"
+"classname> class provides convenient operations to allow the saving of "
+"instances of all of the basic types in Java. In order to support crash "
+"recovery for persistent objects it is necessary for all <command>save_state</"
+"command> methods to call <command>super.save_state</command>."
+msgstr ""
+"每当对象的状态需要为以后的使用(主要是恢复和持久化)而进行保存时,它将被调用。 <literal>ObjectType</literal> 参数指定 <command>save_state</command> 被 <emphasis>TxCore</emphasis> 调用的原因。这使程序员可以根据恢复和持久化是否需要该状态来把不同的信息保存至作为第一个参数提供的 <classname>OutputObjectState</classname> 里。例如,如用于恢复目的,其他 <emphasis>TxCore</emphasis> 对象的指针可以简单地保存为指针,而对于持久化则保存为 UID。如前面所展示的,<classname>OutputObjectState</"
+"classname> 类提供了方便保存所有 Java 基本类型实例的操作。为了支持持久性对象的崩溃恢复,所有 <command>save_state</"
+"command> 方法都有必要调用 <command>super.save_state</command>。"
+
+#. Tag: para
+#: Chapter_02.xml:170
+#, no-c-format
+msgid ""
+"<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 "<command>save_state</command> 假定对象具有内部一致性,所有保存的变量都具有有效值。在编程时程序员需要确保这一点。"
+
+#. Tag: literal
+#: Chapter_02.xml:174
+#, no-c-format
+msgid "boolean restore_state (InputObjectState state, int ObjectType)"
+msgstr "boolean restore_state (InputObjectState state, int ObjectType)"
+
+#. Tag: para
+#: Chapter_02.xml:175
+#, no-c-format
+msgid ""
+"Invoked whenever the state of an object needs to be restored to the one "
+"supplied. Once again the second parameter allows different interpretations "
+"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 ""
+"每当对象的状态需要恢复时被调用。第二个参数允许状态的不同插值。为了支持持久性对象的崩溃恢复,所有 <command>restore_state</"
+"command> 方法都有必要调用 <command>super.restore_state</command>。"
+
+#. Tag: literal
+#: Chapter_02.xml:179
+#, no-c-format
+msgid "String type ()"
+msgstr "String type ()"
+
+#. Tag: para
+#: Chapter_02.xml:180
+#, no-c-format
+msgid ""
+"The <emphasis>TxCore</emphasis> persistence mechanism requires a means of "
+"determining the type of an object as a string so that it can save/restore "
+"the state of the object into/from the object store. By convention this "
+"information indicates the position of the class in the hierarchy. For "
+"example, “/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”."
+msgstr ""
+"<emphasis>TxCore</emphasis> 的持久化机制需要一个获取对象类型(字符串形式)的方法,这样它才可以在 Object Store 里保存/恢复对象的状态。这个信息通常指出类在层次结构中的位置。例如,“/<classname>StateManager</classname>/<classname>LockManager</"
+"classname>/<classname>Object</classname>”。"
+
+#. Tag: title
+#: Chapter_02.xml:190
+#, no-c-format
+msgid "Example"
+msgstr "示例"
+
+#. Tag: para
+#: Chapter_02.xml:192
+#, no-c-format
+msgid ""
+"Consider the following basic <classname>Array</classname> class derived from "
+"the <classname>StateManager</classname> class (in this example, to "
+"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 "请看下面源自 <classname>StateManager</classname> 的基本 <classname>Array</classname> 类(在这个例子里,为了解释保存和恢复对象的状态, highestIndex 变量用来记录这个类里非零值的索引值最高的元素):"
+
+#. Tag: programlisting
+#: Chapter_02.xml:196
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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
+#, no-c-format
+msgid ""
+"The <command>save_state</command>, <command>restore_state</command> and "
+"<command>type</command> operations can be defined as follows:"
+msgstr ""
+"下面是 <command>save_state</command>、<command>restore_state</command> 和 "
+"<command>type</command> 的定义:"
+
+#. Tag: programlisting
+#: Chapter_02.xml:202
+#, no-c-format
+msgid ""
+"/* 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"
+"}"
+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 "锁管理和并行控制"
+
+#. Tag: para
+#: Chapter_02.xml:209
+#, no-c-format
+msgid ""
+"Concurrency control information within <emphasis>TxCore</emphasis> is "
+"maintained by locks. Locks which are required to be shared between objects "
+"in different processes may be held within a lock store, similar to the "
+"object store facility presented previously. The lock store provided with "
+"<emphasis>TxCore</emphasis> deliberately has a fairly restricted interface "
+"so that it can be implemented in a variety of ways. For example, lock stores "
+"are implemented in shared memory; on the Unix file system (in several "
+"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 "<emphasis>TxCore</emphasis> 里的并行控制信息由锁来维护。需要在不同线程里的对象之间共享的锁可以保存在 Lock Store 里,这和前面介绍的 Object Store 相似。<emphasis>TxCore</emphasis> 提供的 Lock Store 具有一个刻意进行限制的接口,它可以用不同的方式来实施。例如,Lock Store 可以在共享内存里、Unix 文件系统里(以不同的形式)或是以远程访问的方式来实施。关于 <emphasis>TxCore</emphasis> 里可用的 Lock Store 的更多信息,请参考附录。"
+
+#. Tag: para
+#: Chapter_02.xml:211
+#, no-c-format
+msgid ""
+"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 "和所有 <emphasis>TxCore</emphasis> 的类一样,缺省的 Lock Store 也是纯 Java 的实现。要访问共享内存和其他更为复杂的 Lock Store 实现,使用 native 方法是必需的。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:213
+#, no-c-format
+msgid ""
+"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"
+"    };"
+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 "选择 Lock Store 的实现"
+
+#. Tag: para
+#: Chapter_02.xml:218
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> comes with support for several different object "
+"store implementations. If the object model being used is SINGLE, then no "
+"lock store is required for maintaining locks, since the information about "
+"the object is not exported from it. However, if the MULTIPLE model is used, "
+"then different run-time environments (processes, Java virtual machines) may "
+"need to share concurrency control information. The implementation type of "
+"the lock store to use can be specified for all objects within a given "
+"execution environment using the <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> property variable. Currently this can have one of "
+"the following values:"
+msgstr ""
+"<emphasis>TxCore</emphasis> 支持几种不同的 Lock Store 的实现。如果对象模型为 SINGLE,那么维护锁就不需要 Lock Store,因为不会输出对象的信息。然而,如果使用了 MULTIPLE 模型,那么不同的运行环境(进程、Java 虚拟机)可能需要共享并行控制信息。Lock Store 使用的实施类型可以在执行环境里用 <literal>com.arjuna.ats.txoj.lockstore."
+"lockStoreType</literal> 属性变量指定。目前它可以有如下的值:"
+
+#. Tag: term
+#: Chapter_02.xml:222
+#, no-c-format
+msgid "BasicLockStore"
+msgstr "BasicLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:223
+#, no-c-format
+msgid ""
+"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 "这是一个内存里(In-memory)的实施,它缺省不会允许在执行环境间共享保存的信息。信息的共享需要应用程序开发人员来实现。"
+
+#. Tag: term
+#: Chapter_02.xml:227
+#, no-c-format
+msgid "BasicPersistentLockStore"
+msgstr "BasicPersistentLockStore"
+
+#. Tag: para
+#: Chapter_02.xml:228
+#, no-c-format
+msgid ""
+"This is the default implementation, and stores locking information within "
+"the local file system. Therefore execution environments that share the same "
+"file store can share concurrency control information. The root of the file "
+"system into which locking information is written is the <filename>LockStore</"
+"filename> directory within the <emphasis>TxCore</emphasis> installation "
+"directory. This can be overridden at runtime by setting the <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> property variable "
+"accordingly, or placing the location within the <literal>CLASSPATH</literal>:"
+msgstr ""
+"这是缺省的实施方法,它把锁信息保存在本地的文件系统里。因此共享相同文件 store 的执行环境可以共享并行控制信息。锁信息写入的文件系统的根是 <emphasis>TxCore</emphasis> 安装目录下的 <filename>LockStore</"
+"filename> 目录。这可以在运行时通过设置 <literal>com."
+"arjuna.ats.txoj.lockstore.lockStoreDir</literal> 属性变量或者替换 <literal>CLASSPATH</literal> 的路径来覆盖。"
+
+#. Tag: command
+#: Chapter_02.xml:230
+#, no-c-format
+msgid ""
+"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 "<para>或</para>"
+
+#. Tag: command
+#: Chapter_02.xml:234
+#, no-c-format
+msgid "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+msgstr "java –classpath $CLASSPATH;/var/tmp/LockStore myprogram"
+
+#. Tag: para
+#: Chapter_02.xml:236
+#, no-c-format
+msgid ""
+"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 "如果不使用这两种方法,那么缺省的位置将和安装目录里的 <filename>etc</filename> 目录平级。"
+
+#. Tag: title
+#: Chapter_02.xml:245
+#, no-c-format
+msgid "LockManager"
+msgstr "LockManager"
+
+#. Tag: para
+#: Chapter_02.xml:247
+#, no-c-format
+msgid ""
+"The concurrency controller is implemented by the class "
+"<classname>LockManager</classname> which provides sensible default behaviour "
+"while allowing the programmer to override it if deemed necessary by the "
+"particular semantics of the class being programmed. The primary programmer "
+"interface to the concurrency controller is via the setlock operation. By "
+"default, the <emphasis>TxCore</emphasis> runtime system enforces strict two-"
+"phase locking following a multiple reader, single writer policy on a per "
+"object basis. Lock acquisition is under programmer control, since just as "
+"<classname>StateManager</classname> cannot determine if an operation "
+"modifies an object, <classname>LockManager</classname> cannot determine if "
+"an operation requires a read or write lock. Lock release, however, is "
+"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 "并行控制是用 <classname>LockManager</classname> 类实现的,它提供缺省行为但也允许程序员在特殊模式下进行覆盖。并行控制器的主要编程接口是通过 setlock 操作来进行的。在缺省情况下,对每个对象,运行系统在多个 reader、单一 writer 策略之后,都强制严格的两阶段锁定。既然 <classname>StateManager</classname> 不能决定某个操作是否需要修改对象,而 <classname>LockManager</classname> 也不能决定操作是否需要读或写锁,那么锁的获取就通过编程来控制。然而,锁的释放通常是系统来控制的,它不需要程序员的进一步干预。这确保了正确的两阶段属性。"
+
+#. Tag: para
+#: Chapter_02.xml:249
+#, no-c-format
+msgid ""
+"The <classname>LockManager</classname> class is primarily responsible for "
+"managing requests to set a lock on an object or to release a lock as "
+"appropriate. However, since it is derived from <classname>StateManager</"
+"classname>, it can also control when some of the inherited facilities are "
+"invoked. For example, if a request to set a write lock is granted, then "
+"<classname>LockManager</classname> invokes modified directly assuming that "
+"the setting of a write lock implies that the invoking operation must be "
+"about to modify the object. This may in turn cause recovery information to "
+"be saved if the object is recoverable. In a similar fashion, successful lock "
+"acquisition causes <command>activate</command> to be invoked."
+msgstr ""
+"<classname>LockManager</classname> 类主要负责管理为对象设置锁的请求或者酌情释放"
+"锁。然而,既然它来源于 <classname>StateManager</classname>,它也可以控制是否调用某些继承的功能。例如,<classname>LockManager</classname> 假定写锁的设定暗示着调用操作必须修改对象。反过来如果对象是可恢复的,这会导致对恢复信息的保存。类似地,对锁的成功获取导致 <command>activate</command> 操作的调用。"
+
+#. Tag: para
+#: Chapter_02.xml:251
+#, no-c-format
+msgid ""
+"Therefore, <classname>LockManager</classname> is directly responsible for "
+"activating/de-activating persistent objects, and registering "
+"<classname>Resources</classname> for managing concurrency control. By "
+"driving the <classname>StateManager</classname> class, it is also "
+"responsible for registering <classname>Resources</classname> for persistent/"
+"recoverable state manipulation and object recovery. The application "
+"programmer simply sets appropriate locks, starts and ends transactions, and "
+"extends the <command>save_state</command> and <command>restore_state</"
+"command> methods of <classname>StateManager</classname>."
+msgstr ""
+"因此,<classname>LockManager</classname> 直接负责激活/取消激活持久性对象以及注册用于并行控制管理的 <classname>Resources</classname>。通过启用 <classname>StateManager</classname> 类,它也负责注册用于持久化/可恢复的状态操作和对象恢复的 <classname>Resources</classname>。应用程序开发人员简单地设置合适的锁,启动和结束事务,且继承 <classname>StateManager</classname> 的 <command>save_state</command> 和 <command>restore_state</"
+"command> 方法。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:253
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <command>setlock</command> operation must be parameterised with the type "
+"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 "<command>setlock</command> 操作必须用所要求的锁的类型(<literal>READ</literal> / <literal>WRITE</literal>)以及获取锁的重试次数参数化。如果存在锁的冲突,就会出现下面的情况之一:"
+
+#. Tag: para
+#: Chapter_02.xml:257
+#, no-c-format
+msgid ""
+"If the retry value is equal to <literal>LockManager.waitTotalTimeout</"
+"literal>, then the thread which called <command>setlock</command> will be "
+"blocked until the lock is released, or the total timeout specified has "
+"elapsed, and in which <literal>REFUSED</literal> will be returned."
+msgstr ""
+"如果 retry 的值和 <literal>LockManager.waitTotalTimeout</"
+"literal> 相等,那么调用 <command>setlock</command> 的线程将堵塞,直到锁释放为止,或是已过了指定的超时时间且返回的是 <literal>REFUSED</literal>。"
+
+#. Tag: para
+#: Chapter_02.xml:261
+#, no-c-format
+msgid ""
+"If the lock cannot be obtained initially then <classname>LockManager</"
+"classname> will try for the specified number of retries, waiting for the "
+"specified timeout value between each failed attempt. The default is 100 "
+"attempts, each attempt being separated by a 0.25 seconds delay; the time "
+"between retries is specified in micro-seconds."
+msgstr ""
+"如果开始时不能获取锁,<classname>LockManager</"
+"classname> 将重试指定的次数,每次尝试失败之后都等待指定的时间。缺省是 100 次,每次尝试之间都有 0.25 秒的间隔;重试之间的间隔以毫秒指定。"
+
+#. Tag: para
+#: Chapter_02.xml:263
+#, no-c-format
+msgid ""
+"If a lock conflict occurs the current implementation simply times out lock "
+"requests, thereby preventing deadlocks, rather than providing a full "
+"deadlock detection scheme. If the requested lock is obtained, the setlock "
+"operation will return the value <literal>GRANTED</literal>, otherwise the "
+"value <literal>REFUSED</literal> is returned. It is the responsibility of "
+"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 "如果发生了锁冲突,当前的实现简单地使锁请求超时,这就避免了死锁而不需要提供完全的死锁检测模式。如果获得了所请求的锁,setlock 操作将返回 <literal>GRANTED</literal> 值,否则将返回 <literal>REFUSED</literal>。程序员要确保只有在获取了锁以后才执行后面的代码。下面是一个使用 <command>setlock</command> 操作的例子。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:265
+#, no-c-format
+msgid ""
+"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."
+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
+#, no-c-format
+msgid ""
+"The concurrency control mechanism is integrated into the atomic action "
+"mechanism, thus ensuring that as locks are granted on an object appropriate "
+"information is registered with the currently running atomic action to ensure "
+"that the locks are released at the correct time. This frees the programmer "
+"from the burden of explicitly freeing any acquired locks if they were "
+"acquired within atomic actions. However, if locks are acquired on an object "
+"<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 "并行控制机制集成在原子动作机制里,因此保证了当获取了对象的锁时,合适的信息向原子动作注册以确保在正确时间释放锁。如果锁是在原子动作里获取的话,这解除了程序员显性地释放锁的负担。然而,如果锁是在原子动作作用域<emphasis>之外</emphasis>获取的话,程序员要负责用 <command>releaselock</command> 操作按需要释放锁。"
+
+#. Tag: title
+#: Chapter_02.xml:272
+#, no-c-format
+msgid "Locking policy"
+msgstr "锁策略"
+
+#. Tag: para
+#: Chapter_02.xml:274
+#, no-c-format
+msgid ""
+"Unlike many other systems, locks in <emphasis>TxCore</emphasis> are not "
+"special system types. Instead they are simply instances of other "
+"<emphasis>TxCore</emphasis> objects (the class <classname>Lock</classname> "
+"which is also derived from <classname>StateManager</classname> so that locks "
+"may be made persistent if required and can also be named in a simple "
+"fashion). Furthermore, <classname>LockManager</classname> deliberately has "
+"no knowledge of the semantics of the actual policy by which lock requests "
+"are granted. Such information is maintained by the actual <classname>Lock</"
+"classname> class instances which provide operations (the "
+"<literal>conflictsWith</literal> operation) by which <classname>LockManager</"
+"classname> can determine if two locks conflict or not. This separation is "
+"important in that it allows the programmer to derive new lock types from the "
+"basic <classname>Lock</classname> class and by providing appropriate "
+"definitions of the conflict operations enhanced levels of concurrency may be "
+"possible."
+msgstr ""
+"不象许多其他系统,<emphasis>TxCore</emphasis> 里的锁不具有特殊的系统类型。相反,它们都是其他 <emphasis>TxCore</emphasis> 对象(<classname>Lock</classname> 类也是继承自 <classname>StateManager</classname>,所以可根据需要持久化且可以简单形式命名)的简单实例。而且,<classname>LockManager</classname> 刻意不顾授予锁请求时使用的实际策略的模式。这样的信息由实际的 <classname>Lock</"
+"classname> 类的实例来维护,它提供 <classname>LockManager</"
+"classname> 可用来检测锁冲突的操作(<literal>conflictsWith</literal>)。这种分离很重要,因为它允许程序员从基本的 <classname>Lock</classname> 类派生新的锁类型,且通过定义合适的冲突而使增强的不行控制成为可能。"
+
+#. Tag: programlisting
+#: Chapter_02.xml:276
+#, no-c-format
+msgid ""
+"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"
+"};"
+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
+#, no-c-format
+msgid ""
+"The <classname>Lock</classname> class provides a <command>modifiesObject</"
+"command> operation which <classname>LockManager</classname> uses to "
+"determine if granting this locking request requires a call on modified. This "
+"operation is provided so that locking modes other than simple read and write "
+"can be supported. The supplied <classname>Lock</classname> class supports "
+"the traditional multiple reader/single writer policy."
+msgstr ""
+"<classname>Lock</classname> 提供了一个 <command>modifiesObject</"
+"command> 操作,<classname>LockManager</classname> 用它来决定在赋予锁时是否需要调用 modified。提供这个操作是为了支持锁模式而不是简单的读和写。<classname>Lock</classname> 类支持传统的多 reader/单一 writer 策略。"
+
+#. Tag: title
+#: Chapter_02.xml:283
+#, no-c-format
+msgid "Object construction and destruction"
+msgstr "对象构造和析构"
+
+#. Tag: para
+#: Chapter_02.xml:285
+#, no-c-format
+msgid ""
+"Recall that <emphasis>TxCore</emphasis> objects can be recoverable; "
+"recoverable and persistent; or neither. Additionally each object possesses a "
+"unique internal name. These attributes can only be set when that object is "
+"constructed. Thus <classname>LockManager</classname> provides two protected "
+"constructors for use by derived classes, each of which fulfils a distinct "
+"purpose:"
+msgstr "让我们回忆一下,<emphasis>TxCore</emphasis> 对象可以是可恢复的、可恢复及持久的或者是 NEITHER。此外,每个对象都拥有一个唯一的内部名称。这些属性只有在对象被构造时才可进行设置。因此 <classname>LockManager</classname> 提供两个作用域为 protected 的构造函数供子类使用,每个都用于不同的目的:"
+
+#. Tag: command
+#: Chapter_02.xml:289
+#, no-c-format
+msgid "LockManager ()"
+msgstr "LockManager ()"
+
+#. Tag: para
+#: Chapter_02.xml:290
+#, no-c-format
+msgid ""
+"This constructor allows the creation of new objects, that is, no prior state "
+"is assumed to exist."
+msgstr "这个构造函数允许创建新的对象,也就是假定以前的状态不存在。"
+
+#. Tag: command
+#: Chapter_02.xml:294
+#, no-c-format
+msgid "LockManager (int ObjectType, ObjectName attr)"
+msgstr "LockManager (int ObjectType, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:295
+#, no-c-format
+msgid ""
+"As above, this constructor allows the creation of new objects, that is, no "
+"prior state is assumed to exist. The <literal>ObjectType</literal> parameter "
+"determines whether an object is simply recoverable (indicated by "
+"<literal>RECOVERABLE</literal>); recoverable and persistent (indicated by "
+"<literal>ANDPERSISTENT</literal>) or neither (<literal>NEITHER</literal>). "
+"If an object is marked as being persistent then the state of the object will "
+"be stored in one of the object stores. The shared parameter only has meaning "
+"if it is <literal>RECOVERABLE</literal>; if <literal>attr</literal> is not "
+"null and the object model is <literal>SINGLE</literal> (the default "
+"behaviour) then the recoverable state of the object is maintained within the "
+"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 "这个构造函数允许创建新的对象,也就是假定以前的状态不存在。<literal>ObjectType</literal> 参数指定对象是否是可恢复的(<literal>RECOVERABLE</literal>)、可恢复且持久的(<literal>ANDPERSISTENT</literal>)或两者皆非(<literal>NEITHER</literal>)。如果对象被标记为持久的,那么该对象的状态将保存在某个 Object Store 里。共享参数为只有为 <literal>RECOVERABLE</literal> 时才有意义;如果 <literal>attr</literal> 非空且对象模型为 <literal>SINGLE</literal>(缺省值),那么对象的可恢复状态将在对象内部进行维护(也就是没有外部的代表),否则内存里(In-memory)的 Object Store 将被用来保存原子动作间的对象状态。"
+
+#. Tag: para
+#: Chapter_02.xml:297
+#, no-c-format
+msgid ""
+"Constructors for new persistent objects should make use of atomic actions "
+"within themselves. This will ensure that the state of the object is "
+"automatically written to the object store either when the action in the "
+"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 "新的持久性对象的构造函数应该利用其自身的原子动作。这将确保对象的状态在构造函数里的动作提交时,或存在包含的动作而相关的顶层事务提交时,自动地写入到 Object Store。本章后面的例子将进一步解释这一点。"
+
+#. Tag: command
+#: Chapter_02.xml:301
+#, no-c-format
+msgid "LockManager(Uid objUid)"
+msgstr "LockManager(Uid objUid)"
+
+#. Tag: para
+#: Chapter_02.xml:302
+#, no-c-format
+msgid ""
+"This constructor allows access to an existing persistent object, whose "
+"internal name is given by the <literal>objUid</literal> parameter. Objects "
+"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 ""
+"这个构造函数允许对现有的持久性对象的访问,其内部名称由参数 <literal>objUid</literal> 给定。系统通常为使用这个操作构建的对象从 "
+"Object Store 里自动地加载其优先状态(由 <literal>objUid</literal> 标识)。"
+
+#. Tag: command
+#: Chapter_02.xml:306
+#, no-c-format
+msgid "LockManager(Uid objUid, ObjectName attr)"
+msgstr "LockManager(Uid objUid, ObjectName attr)"
+
+#. Tag: para
+#: Chapter_02.xml:307
+#, no-c-format
+msgid ""
+"As above, this constructor allows access to an existing persistent object, "
+"whose internal name is given by the <literal>objUid</literal> parameter. "
+"Objects constructed using this operation will normally have their prior "
+"state (identified by <literal>objUid</literal>) loaded from an object store "
+"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 "这个构造函数允许访问现有的持久性对象,其内部名由 <literal>objUid</literal> 参数指定。用这个操作构造的对象通常将具有由系统从 Object Store 里自动加载的之前的状态(由 <literal>objUid</literal> 指定)。如果 attr 参数非空,且对象模型是 <literal>SINGLE</literal>(缺省行为),那么对象将不会在每个顶层事务启动时被重新激活。"
+
+#. Tag: para
+#: Chapter_02.xml:309
+#, no-c-format
+msgid ""
+"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 "用户自定义的类的析构必须调用继承的操作 terminate 来通知状态管理机制对象将被销毁,否则可能出现不可预料的后果。"
+
+#. Tag: para
+#: Chapter_02.xml:311
+#, no-c-format
+msgid ""
+"Because <classname>LockManager</classname> inherits from "
+"<classname>StateManager</classname>, it will pass any supplied "
+"<classname>ObjectName</classname> instance to the <classname>StateManager</"
+"classname> class. As such, it is possible to set the "
+"<classname>StateManager</classname> object model as described earlier."
+msgstr ""
+"因为 <classname>LockManager</classname> 继承自 <classname>StateManager</classname>,它将把任何提供的 <classname>ObjectName</classname> 实例传递给 <classname>StateManager</"
+"classname> 类。因此,如之前所描述的,你可以设置 <classname>StateManager</classname> 对象模型。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_03.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_03.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_03.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,688 @@
+# translation of Chapter_03.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-07-01 14:00+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter_03.xml:6
+#, no-c-format
+msgid "General Transaction Issues"
+msgstr "一般的事务问题"
+
+#. Tag: title
+#: Chapter_03.xml:10
+#, no-c-format
+msgid "Advanced transaction issues with TxCore"
+msgstr "TxCore 的高级事务问题"
+
+#. Tag: para
+#: Chapter_03.xml:12
+#, no-c-format
+msgid ""
+"Atomic actions (transactions) can be used by both application programmers "
+"and class developers. Thus entire operations (or parts of operations) can be "
+"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 "应用程序和类开发人员都可以使用原子动作(事务)。因此整个操作(或部分操作)都可以根据特殊操作模式所需而成员原子的。本章将描述使用事务的一般问题以及 <emphasis>TxCore</emphasis> 专有的问题。"
+
+#. Tag: title
+#: Chapter_03.xml:15
+#, no-c-format
+msgid "Checking transactions"
+msgstr "检查事务"
+
+#. Tag: para
+#: Chapter_03.xml:17
+#, no-c-format
+msgid ""
+"In a multi-threaded application, multiple threads may be associated with a "
+"transaction during its lifetime, i.e., the thread’s share the context. In "
+"addition, it is possible that if one thread terminates a transaction other "
+"threads may still be active within it. In a distributed environment, it can "
+"be difficult to guarantee that all threads have finished with a transaction "
+"when it is terminated. By default, <emphasis>TxCore</emphasis> will issue a "
+"warning if a thread terminates a transaction when other threads are still "
+"active within it; however, it will allow the transaction termination to "
+"continue. Other solutions to this problem are possible, e.g., blocking the "
+"thread which is terminating the transaction until all other threads have "
+"disassociated themselves from the transaction context. Therefore, "
+"<emphasis>TxCore</emphasis> provides the <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> class, which allows the thread/"
+"transaction termination policy to be overridden. Each transaction has an "
+"instance of this class associated with it, and application programmers can "
+"provide their own implementations on a per transaction basis."
+msgstr ""
+"在多线程应用程序里,多个线程可能和某个事务相关联,也就是说,这些线程共享上下文。此外,有可能某个线程终止了一个事务,而该事务里还有其他的活动线程。在分布式环境里,保证事务终止时所有相关的线程都结束是很困难的。在缺省情况下,如果某个线程终止了一个事务而该事务里还有其他的活动线程,<emphasis>TxCore</emphasis> 将产生一个警告;然而,这仍将允许事务终止过程继续。也有其他的解决方法,例如,阻塞终止事务的线程,一直到所有其他线程都和事务上下文不再相关联。因此,<emphasis>TxCore</emphasis> 提供了 <classname>com.arjuna.ats.arjuna."
+"coordinator.CheckedAction</classname> 类,它允许覆盖线程/事务终止策略。每个事务都有这个类的一个实例与其相关联,应用程序开发人员可以为每个不同的事务提供自己的实现。"
+
+#. Tag: programlisting
+#: Chapter_03.xml:19
+#, no-c-format
+msgid ""
+"public class CheckedAction\n"
+"{\n"
+"public CheckedAction ();\n"
+"\n"
+"public synchronized void check (boolean isCommit, Uid actUid,\n"
+"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
+#, no-c-format
+msgid ""
+"When a thread attempts to terminate the transaction and there are active "
+"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 "当线程试图终止事务且该事务里还有其他活动线程时,系统将调用事务的 <classname>CheckedAction</classname> 对象的 check 方法。check 方法的参数是:"
+
+#. Tag: term
+#: Chapter_03.xml:25
+#, no-c-format
+msgid "isCommit"
+msgstr "isCommit"
+
+#. Tag: para
+#: Chapter_03.xml:26
+#, no-c-format
+msgid ""
+"Indicates whether the transaction is in the process of committing or rolling "
+"back."
+msgstr "指出事务是否正在提交或回滚。"
+
+#. Tag: term
+#: Chapter_03.xml:30
+#, no-c-format
+msgid "actUid"
+msgstr "actUid"
+
+#. Tag: para
+#: Chapter_03.xml:31
+#, no-c-format
+msgid "The transaction identifier."
+msgstr "事务标识符。"
+
+#. Tag: term
+#: Chapter_03.xml:35
+#, no-c-format
+msgid "list"
+msgstr "list"
+
+#. Tag: para
+#: Chapter_03.xml:36
+#, no-c-format
+msgid ""
+"a list of all of the threads currently marked as active within this "
+"transaction."
+msgstr "该事务里当前所有标记为活动的线程列表。"
+
+#. Tag: para
+#: Chapter_03.xml:42
+#, no-c-format
+msgid ""
+"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 "当 check 返回时,事务终止将继续进行。显然,此时事务的状态可能和 check 刚被调用时会有不同,例如,事务可能随后已经被提交了。"
+
+#. Tag: title
+#: Chapter_03.xml:47
+#, no-c-format
+msgid "Statistics gathering"
+msgstr "收集统计信息"
+
+#. Tag: para
+#: Chapter_03.xml:49
+#, no-c-format
+msgid ""
+"By default, the JBossTS does not maintain any history information about "
+"transactions. However, by setting the <literal>com.arjuna.ats.arjuna."
+"coordinator.enableStatistics</literal> property variable to YES, the "
+"transaction service will maintain information about the number of "
+"transactions created, and their outcomes. This information can be obtained "
+"during the execution of a transactional application via the <classname>com."
+"arjuna.TxCore.Atomic.TxStats</classname> class:"
+msgstr "在缺省情况下,JBossTS 不维护事务的任何历史信息。然而,通过把 <literal>com.arjuna.ats.arjuna.coordinator.enableStatistics</literal> 属性变量设置为 YES,事务服务将保留关于事务创建的数量以及结果的信息。这些信息可以在事务性应用程序的执行过程中通过 <classname>com.arjuna.TxCore.Atomic.TxStats</classname> 类获得:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:51
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "最近提交资源优化"
+
+#. Tag: para
+#: Chapter_03.xml:59
+#, no-c-format
+msgid ""
+"In some cases it may be necessary to enlist participants that aren’t two-"
+"phase commit aware into a two-phase commit transaction. If there is only a "
+"single resource then there is no need for two-phase commit. However, what if "
+"there are multiple resources in the transaction? In this case, the Last "
+"Resource Commit optimization (LRCO) comes into play. It is possible for a "
+"single resource that is one-phase aware (i.e., can only commit or roll back, "
+"with no prepare), to be enlisted in a transaction with two-phase commit "
+"aware resources. The coordinator treats the one-phase aware resource "
+"slightly differently, in that it executes the prepare phase on all other "
+"resource first, and if it then intends to commit the transaction it passes "
+"control to the one-phase aware resource. If it commits, then the coordinator "
+"logs the decision to commit and attempts to commit the other resources as "
+"well."
+msgstr "在某些情况下,你有必要把非两阶段提交的参与者放入两阶段提交的的事务里。如果只有单个资源,那么就不需要两阶段提交。然而,如果在事务里多个资源呢?此时就可以使用最近资源提交优化(Last Resource Commit optimization,LRCO)。只知道一阶段提交(也就是只提交或回滚,没有准备阶段)的单个资源有可能参与到带有两阶段提交资源的事务里。协调者将稍微区别对待一阶段提交资源,它首先执行所有其他资源的准备阶段,然后试图提交控制权已交给一阶段资源的事务。如果提交成功,协调者登记提交决定并试图提交其他资源。"
+
+#. Tag: para
+#: Chapter_03.xml:61
+#, no-c-format
+msgid ""
+"In order to utilise the LRCO, your participant must implement the "
+"<classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> interface "
+"and be registered with the transaction through the <command>BasicAction</"
+"command>.add operation; since this operation expects instances of "
+"<classname>AbstractRecord</classname>, you must create an instance "
+"<classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> and give "
+"your participant as the constructor parameter, as shown below:"
+msgstr "为了利用 LRCO,参与者必须实现 <classname>com.arjuna.ats.arjuna.coordinator.OnePhase</classname> 接口并通过 <command>BasicAction.add</command> 操作向事务注册。既然这个操作需要 <classname>AbstractRecord</classname> 实例,你必须创建一个 <classname>com.arjuna.ats.arjuna.LastResourceRecord</classname> 实例并把参与者作为参数传给构造函数,就象下面这样:"
+
+#. Tag: programlisting
+#: Chapter_03.xml:63
+#, no-c-format
+msgid ""
+"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();"
+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 "嵌套的事务"
+
+#. Tag: para
+#: Chapter_03.xml:70
+#, no-c-format
+msgid ""
+"There are no special constructs for nesting of transactions: if an action is "
+"begun while another action is running then it is automatically nested. This "
+"allows for a modular structure to applications, whereby objects can be "
+"implemented using atomic actions within their operations without the "
+"application programmer having to worry about the applications which use "
+"them, i.e., whether or not the applications will use atomic actions as well. "
+"Thus, in some applications actions may be top-level, whereas in others they "
+"may be nested. Objects written in this way can then be shared between "
+"application programmers, and <emphasis>TxCore</emphasis> will guarantee "
+"their consistency."
+msgstr "嵌套的事务没有特殊的构造方法:如果某个动作在另外一个动作还在运行时开始的话,它将自动被嵌套。这允许应用程序使用模块化结构,对象可以用操作里的原子动作来实现,而程序员无需担心使用对象的程序,也就是不用管应用程序使用原子动作与否。因此,在某些应用程序里,动作可能是顶层的,而其他地方则可能是嵌套的。应用程序开发人员可以共享以这种方式编写的对象,而 <emphasis>TxCore</emphasis> 将保证它的一致性。"
+
+#. Tag: para
+#: Chapter_03.xml:72
+#, no-c-format
+msgid ""
+"If a nested action is aborted then all of its work will be undone, although "
+"strict two-phase locking means that any locks it may have obtained will be "
+"retained until the top-level action commits or aborts. If a nested action "
+"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 "如果某个嵌套的动作中止了,那么它的所有工作都将被取消,虽然严格的两阶段锁意味着它所获得的锁在顶层动作提交或中止前都将继续保留。如果嵌套的动作提交了,它已经执行的工作将只在顶层动作提交时才被系统提交;如果顶层动作中止,那么所有这些工作都会被取消。"
+
+#. Tag: para
+#: Chapter_03.xml:74
+#, no-c-format
+msgid ""
+"The committing or aborting of a nested action does not automatically affect "
+"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 "嵌套动作的提交或中止并不自动影响它嵌套的动作的结果。这取决于应用程序的编写,程序员可以让原子动作包含错误处理、取消已完成的工作等等。"
+
+#. Tag: title
+#: Chapter_03.xml:78
+#, no-c-format
+msgid "Asynchronously committing a transaction"
+msgstr "异步提交事务"
+
+#. Tag: para
+#: Chapter_03.xml:80
+#, no-c-format
+msgid ""
+"By default, JBossTS executes the commit protocol of a top-level transaction "
+"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 "在缺省情况下,JBossTS 以同步的方式执行提交顶层事务的提交协议,也就是说,所有注册的资源将按单个进程进行准备,然后进行提交或回滚。这种方式可能会有如下的缺点:"
+
+#. Tag: para
+#: Chapter_03.xml:83
+#, no-c-format
+msgid ""
+"In the case of many registered resources, the prepare operating can "
+"logically be invoked in parallel on each resource. The disadvantage is that "
+"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 "在有许多注册的资源的情况下,每个资源的准备操作可以并行地调用。其缺点时如果注册资源列表里的某个“早”资源迫使准备阶段进行回滚的话,有可能许多准备操作就毫无必要了。"
+
+#. Tag: para
+#: Chapter_03.xml:84
+#, no-c-format
+msgid ""
+"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 "在应用程序不要求启发式报告(heuristic reporting)时,既然提交协议的第二阶段的成功或失败都不重要,那它就可以异步地进行。"
+
+#. Tag: para
+#: Chapter_03.xml:87
+#, no-c-format
+msgid ""
+"Therefore, <emphasis>JBossTS</emphasis> provides runtime options to enable "
+"possible threading optimizations. By setting the <literal>com.arjuna.ats."
+"arjuna.coordinator.asyncPrepare</literal> environment variable to "
+"<literal>YES</literal>, during the prepare phase a separate thread will be "
+"created for each registered participant within the transaction. By setting "
+"<literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> to "
+"<literal>YES</literal>, a separate thread will be created to complete the "
+"second phase of the transaction if knowledge about heuristics outcomes is "
+"not required."
+msgstr ""
+"因此,<emphasis>JBossTS</emphasis> 提供了运行时选项来启用可能的线程优化。通过设置 <literal>com.arjuna.ats.arjuna.coordinator.asyncPrepare</literal> 环境变量为 <literal>YES</literal>,在准备阶段将为事务里每个注册的参与者创建一个独立的线程。而通过设置 <literal>com.arjuna.ats.arjuna.coordinator.asyncCommit</literal> 环境变量为 <literal>YES</literal>"
+",如果已知不要求启发式结果的话,就可以创建一个独立的线程来完成事务的第二阶段。"
+
+#. Tag: title
+#: Chapter_03.xml:93
+#, no-c-format
+msgid "Independent top-level transactions"
+msgstr "独立的顶层事务"
+
+#. Tag: para
+#: Chapter_03.xml:95
+#, no-c-format
+msgid ""
+"In addition to normal top-level and nested atomic actions <emphasis>TxCore</"
+"emphasis> also supports independent top-level actions, which can be used to "
+"relax strict serialisability in a controlled manner. An independent top-"
+"level action can be executed from anywhere within another atomic action and "
+"behaves exactly like a normal top-level action, that is, its results are "
+"made permanent when it commits and will not be undone if any of the actions "
+"within which it was originally nested abort."
+msgstr "除了普通的顶层和嵌套原子动作,<emphasis>TxCore</emphasis> 也支持独立的顶层动作,它可以用来以可控的方式绕开严格的串行化要求。独立的顶层动作可以在另外一个原子动作里的任何地方执行,且行为和普通的顶层动作完全一样,那就是:在提交后,它的结果将时永久的,且即使它嵌套的任何动作发生中止也无法取消这个结果。"
+
+#. Tag: caption
+#: Chapter_03.xml:101
+#, no-c-format
+msgid "Independent Top-Level Action"
+msgstr "独立的顶层动作"
+
+#. Tag: para
+#: Chapter_03.xml:104
+#, no-c-format
+msgid ""
+"shows a typical nesting of atomic actions, where action B is nested within "
+"action A. Although atomic action C is logically nested within action B (it "
+"had its Begin operation invoked while B was active) because it is an "
+"independent top-level action, it will commit or abort independently of the "
+"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 "展示了一个典型的原子动作嵌套,动作 B 嵌套在 A 里。虽然原子动作 C 从逻辑上来将嵌套在 B 里(当 B 为活动状态时,它的 Begin 操作被调用),但因为它是一个独立的顶层动作,它将独立于此结构里的其他动作提交或中止。因为独立顶层动作的性质,你应该小心使用且只有在仔细检查其用途后再使用。"
+
+#. Tag: para
+#: Chapter_03.xml:106
+#, no-c-format
+msgid ""
+"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 "顶层动作可以通过声明和使用 <classname>TopLevelTransaction</classname> 的实例来在应用程序内部使用。它们的使用方法和其他事务完全一样。"
+
+#. Tag: title
+#: Chapter_03.xml:111
+#, no-c-format
+msgid "Transactions within save_state and restore_state"
+msgstr "save_state 和 restore_state 里的事务"
+
+#. Tag: para
+#: Chapter_03.xml:113
+#, no-c-format
+msgid ""
+"Caution must be exercised when writing the <command>save_state</command> and "
+"<command>restore_state</command> operations to ensure that no atomic actions "
+"are started (either explicitly in the operation or implicitly through use of "
+"some other operation). This restriction arises due to the fact that "
+"<emphasis>TxCore</emphasis> may invoke <command>restore_state</command> as "
+"part of its commit processing resulting in the attempt to execute an atomic "
+"action during the commit or abort phase of another action. This might "
+"violate the atomicity properties of the action being committed (aborted) and "
+"is thus discouraged."
+msgstr ""
+"当编写 <command>save_state</command> 和 <command>restore_state</command> 操作时需要小心确保没有启动任何事务(在操作里显性地启动或通过使用其他操作隐形地启动)。这个限制是由于 <emphasis>TxCore</emphasis> 可能把 <command>restore_state</command> 作为其提交过程的一部分来调用,从而导致了在一个事务的提交或中止阶段试图"
+"执行另外一个原子事务。这可能违背了被提交(中止)的事务的原子属性,因此不应该使用"
+"。"
+
+#. Tag: title
+#: Chapter_03.xml:118
+#, no-c-format
+msgid "Example"
+msgstr "示例"
+
+#. Tag: para
+#: Chapter_03.xml:120
+#, no-c-format
+msgid ""
+"If we consider the Array example given previously, the set and get "
+"operations could be implemented as shown below."
+msgstr "如果我们考虑前面给出的 Array 示例,它的 set 和 get 操作可以象下面这样实现。"
+
+#. Tag: para
+#: Chapter_03.xml:122
+#, no-c-format
+msgid ""
+"This is a simplification of the code, ignoring error conditions and "
+"exceptions."
+msgstr "这是一段简化了的代码,它忽略了错误和异常处理。"
+
+#. Tag: programlisting
+#: Chapter_03.xml:124
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "垃圾回收对象"
+
+#. Tag: para
+#: Chapter_03.xml:131
+#, no-c-format
+msgid ""
+"Java objects are deleted when the garbage collector determines that they are "
+"no longer required. Deleting an object that is currently under the control "
+"of a transaction must be approached with caution since if the object is "
+"being manipulated within a transaction its fate is effectively determined by "
+"the transaction. Therefore, regardless of the references to a transactional "
+"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 "当垃圾回收器决定不再需要 Java 对象时,它们就会被删除。删除在事务控制之下的对象必须小心行事,因为如果对象在事务里操纵,它的命运实际上是由事务来决定的。因此,不管应用程序是否维护对事务性对象的引用,<emphasis>TxCore</emphasis> 总是保留自己的引用来确保这个对象不会被当作垃圾回收,一直到所有事务都已经结束为止。"
+
+#. Tag: title
+#: Chapter_03.xml:136
+#, no-c-format
+msgid "Transaction timeouts"
+msgstr "事务超时"
+
+#. Tag: para
+#: Chapter_03.xml:138
+#, no-c-format
+msgid ""
+"By default transactions live until they are terminated by the application "
+"that created them or a failure occurs. However, it is possible to set a "
+"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 "在缺省情况下,事务一直生存到被创建它的应用程序终止或发生故障。然而,我们有可以为每个事务设置一个超时时间(秒),这样如果事务在超时前还没有被终止的话,它将自动回滚。"
+
+#. Tag: para
+#: Chapter_03.xml:140
+#, no-c-format
+msgid ""
+"In <emphasis>TxCore</emphasis>, the timeout value is provided as a parameter "
+"to the <classname>AtomicAction</classname> constructor. If a value of "
+"<literal>AtomicAction.NO_TIMEOUT</literal> is provided (the default) then "
+"the transaction will not be automatically timed out. Any other positive "
+"value is assumed to the timeout for the transaction (in seconds). A value of "
+"zero is taken to be a global default timeout, which can be provided by the "
+"property <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</"
+"literal>. Unless changed the default value is 60 seconds."
+msgstr "在 <emphasis>TxCore</emphasis> 里,超时时间被作为 <classname>AtomicAction</classname> 构造函数的参数。如果其值为 <literal>AtomicAction.NO_TIMEOUT</literal>(缺省值),那么该事务将不会自动超时。而任何其他正值都将是事务的超时时间(以秒为单位)。零值将作为全局的缺省超时时间,它可由属性 <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> 提供。除非进行修改,缺省值是 60 秒。"
+
+#. Tag: para
+#: Chapter_03.xml:142
+#, no-c-format
+msgid ""
+"When a top-level transaction is created with a non-zero timeout, it is "
+"subject to being rolled back if it has not completed within the specified "
+"number of seconds. <emphasis>JBossTS</emphasis> uses a separate reaper "
+"thread which monitors all locally created transactions, and forces them to "
+"roll back if their timeouts elapse. To prevent this thread from consuming "
+"application time, it only runs periodically. The default checking period is "
+"120000 milliseconds, but can be overridden by setting the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> property variable to "
+"another valid value, in microseconds. Alternatively, if the <literal>com."
+"arjuna.ats.arjuna.coordinator.txReaperMode</literal> is set to "
+"<literal>DYNAMIC</literal>, the transaction reaper will wake whenever a "
+"transaction times out. This has the advantage of terminating transactions "
+"early, but may suffer from continually rescheduling the reaper thread."
+msgstr ""
+"当某个顶层的事务用非零值超时时间创建时,如果它在指定的时间内没有完成的话,它将进行回滚。<emphasis>JBossTS</emphasis> 使用一个独立的 reaper 线程来监控所有本地创建的事务,并在超时后强迫它们回滚。要阻止这个线程消耗应用程序时间,它应该只定期地运行。缺省的检查间隔是 120000 毫秒,但你可以通过设置 <literal>com.arjuna.ats.arjuna.coordinator.txReaperTimeout</literal> 属性来覆盖它。或者,如果 <literal>com.arjuna.ats.arjuna.coordinator."
+"txReaperMode</literal> 被设置为 <literal>DYNAMIC</literal>,reaper 线程将在任何事务超时时被唤醒。这种模式的优势是可以及早地终止事务,但也有可能得不停地调度 reaper 线程。"
+
+#. Tag: para
+#: Chapter_03.xml:144
+#, no-c-format
+msgid ""
+"If a value of 0 is specified for the timeout of a top-level transaction (or "
+"no timeout is specified), then <emphasis>JBossTS</emphasis> will not impose "
+"any timeout on the transaction, i.e., it will be allowed to run "
+"indefinitely. This default timeout can be overridden by setting the "
+"<literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> property "
+"variable when using <emphasis>ArjunaCore</emphasis> or <emphasis>ArjunaJTS</"
+"emphasis>, or <literal>com.arjuna.ats.jts.defaultTimeout</literal> if using "
+"<emphasis>ArjunaJTS</emphasis>, to the required timeout value in seconds."
+msgstr ""
+"如果为某个顶层事务指定了零值的超时时间(或未指定超时时间),<emphasis>JBossTS</emphasis> 将不会将任何超时时间强加于该事务上,也就是说,它将允许该事务无限期地运行。当使用 <emphasis>ArjunaCore</emphasis> 或 <emphasis>ArjunaJTS</emphasis> 时,你可以设置 <literal>com.arjuna.ats.arjuna.coordinator.defaultTimeout</literal> 来覆盖缺省超时时间,或是使用 <emphasis>ArjunaJTS</emphasis> 时设置 <literal>com."
+"arjuna.ats.jts.defaultTimeout</literal> 进行覆盖。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_04.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_04.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_04.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,329 @@
+# translation of Chapter_04.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-30 15:42+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_04.xml:6
+#, no-c-format
+msgid "Hints and tips"
+msgstr "提示和建议"
+
+#. Tag: title
+#: Chapter_04.xml:9
+#, no-c-format
+msgid "General"
+msgstr "一般建议"
+
+#. Tag: title
+#: Chapter_04.xml:12
+#, no-c-format
+msgid "Using transactions in constructors"
+msgstr "在构造函数里使用事务"
+
+#. Tag: para
+#: Chapter_04.xml:14
+#, no-c-format
+msgid ""
+"Examples throughout this manual have used transactions in the implementation "
+"of constructors for new persistent objects. This is deliberate because it "
+"guarantees correct propagation of the state of the object to the object "
+"store. Recall that the state of a modified persistent object is only written "
+"to the object store when the top-level transaction commits. Thus, if the "
+"constructor transaction is top-level and it commits, then the newly created "
+"object is written to the store and becomes available immediately. If "
+"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 "在本手册的例子中,构造函数的实现里都使用了事务来创建新的持久性对象。我们是有意为之,因为这保证了对象状态正确传递到 Object Store 里。如之前提到的,有修改的持久性对象的状态只在顶层事务提交时才写入到 Object Store 里。因此,如果构造函数里的事务是顶层的且被提交,那么最近创建的对象都会被写入到 Object Store 里并马上可用。然而,如果构造函数里的事务提交了但却是嵌套的(因为在对象创建之前启动的某些其他事务仍在运行),那么相关状态只有在所有的父事务提交时才被写入。"
+
+#. Tag: para
+#: Chapter_04.xml:16
+#, no-c-format
+msgid ""
+"On the other hand, if the constructor does not use transactions then it is "
+"possible for inconsistencies in the system to arise. For example, if no "
+"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 "从另外一方面来说,如果构造函数没有使用事务,那么系统里的不一致性就可能增加。例如,如果在创建对象时没有活动的事务,它的状态将直到下次对象在某个事务里被修改时才会保存到 Object Store 里,。"
+
+#. Tag: para
+#: Chapter_04.xml:18
+#, no-c-format
+msgid "Consider this simple example:"
+msgstr "让我们看看这个简单的例子:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:20
+#, no-c-format
+msgid ""
+"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"
+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
+#, no-c-format
+msgid ""
+"Here the two objects are created outside of the control of the top-level "
+"action A. <literal>obj1</literal> is a new object; <literal>obj2</literal> "
+"an old existing object. When the remember operation of <literal>obj2</"
+"literal> is invoked the object will be activated and the Uid of "
+"<literal>obj1</literal> remembered. Since this action commits the persistent "
+"state of <literal>obj2</literal> could now contain the Uid of <literal>obj1</"
+"literal>. However, the state of <literal>obj1</literal> itself has not been "
+"saved since it has not been manipulated under the control of any action. In "
+"fact, unless it is modified under the control of some action later in the "
+"application it will never be saved. If, however, the constructor had used an "
+"atomic action the state of <literal>obj1</literal> would have automatically "
+"been saved at the time it was constructed and this inconsistency could not "
+"arise."
+msgstr ""
+"这里是在顶层动作 A 的控制之外创建的两个对象。<literal>obj1</literal> 是一个新的对象;<literal>obj2</literal> 则是一现有的对象。当 <literal>obj2</"
+"literal> 的 remember 操作被调用时,它将被激活且记住 <literal>obj1</literal> 的 Uid。虽然这个提交 <literal>obj2</literal> 的持久状态的动作现在可以包含 <literal>obj1</"
+"literal> 的 UID,但 <literal>obj1</literal> 自己的状态还没有保存,因为它还没有被任何动作所操纵。实际上,除非之后它被应用程序的某个动作修改,它的状态永不会被保存。然而,如果构造函数已经使用了一个原子动作,<literal>obj1</literal> 的状态将在构建时自动保存且不会出现这样的不一致性。"
+
+#. Tag: title
+#: Chapter_04.xml:26
+#, no-c-format
+msgid "More on save_state and restore_state"
+msgstr "save_state 和 restore_state 的更多细节"
+
+#. Tag: para
+#: Chapter_04.xml:28
+#, no-c-format
+msgid ""
+"<emphasis>TxCore</emphasis> may invoke the user-defined <command>save_state</"
+"command> operation of an object effectively at any time during the lifetime "
+"of an object including during the execution of the body of the object’s "
+"constructor (particularly if it uses atomic actions). It is important, "
+"therefore, that all of the variables saved by save_state are correctly "
+"initialised."
+msgstr ""
+"<emphasis>TxCore</emphasis> 可能在对象的生存期间的任何时候调用用户定义的 <command>save_state</"
+"command> 操作,包括在执行对象的构造函数(尤其是使用原子动作时)的主体时。因此,正确初始化 save_state 保存的所有变量是很重要的。"
+
+#. Tag: para
+#: Chapter_04.xml:30
+#, no-c-format
+msgid ""
+"Caution must be also exercised when writing the <command>save_state</"
+"command> and <command>restore_state</command> operations to ensure that no "
+"transactions are started (either explicitly in the operation or implicitly "
+"through use of some other operation). This restriction arises due to the "
+"fact that <emphasis>TxCore</emphasis> may invoke <command>restore_state</"
+"command> as part of its commit processing resulting in the attempt to "
+"execute an atomic transaction during the commit or abort phase of another "
+"transaction. This might violate the atomicity properties of the transaction "
+"being committed (aborted) and is thus discouraged."
+msgstr ""
+"当编写 <command>save_state</"
+"command> 和 <command>restore_state</command> 操作时需要小心确保没有启动任何事务(在操作里显性地启动或通过使用其他操作隐形地启动)。这个限制是由于 <emphasis>TxCore</emphasis> 可能把 <command>restore_state</"
+"command> 作为其提交过程的一部分来调用,从而导致了在一个事务的提交或中止阶段试图执行另外一个原子事务。这可能违背了被提交(中止)的事务的原子属性,因此不应该使用。"
+
+#. Tag: para
+#: Chapter_04.xml:32
+#, no-c-format
+msgid ""
+"In order to support crash recovery for persistent objects it is necessary "
+"for all <literal>save_state</literal> and <literal>restore_state</literal> "
+"methods of user objects to call <command>super.save_state</command> and "
+"<command>super.restore_state</command>."
+msgstr ""
+"为了支持持久性对象的崩溃恢复(Crash Recovery),你有必要让用户对象的所有 <literal>save_state</literal> 和 <literal>restore_state</literal> 方法调用 <command>super.save_state</command> 和 "
+"<command>super.restore_state</command>。"
+
+#. Tag: title
+#: Chapter_04.xml:37
+#, no-c-format
+msgid "Packing Objects"
+msgstr "Packing Objects"
+
+#. Tag: para
+#: Chapter_04.xml:39
+#, no-c-format
+msgid ""
+"All of the basic types of Java (int, long, etc.) can be saved and restored "
+"from an <classname>Input/OutputObjectState</classname> instance by using the "
+"pack (and unpack) routines provided by <classname>Input/OutputObjectState</"
+"classname>. However packing and unpacking objects should be handled "
+"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 ""
+"所有的 Java 基本类型(int、long 等)都可以使用 <classname>Input/OutputObjectState</"
+"classname> 提供的 pack(和 unpack)保存到和从 <classname>Input/OutputObjectState</classname> 实例中恢复。然而,对象的打包和解包应该进行不同的处理。这是因为对象打包会带来额外的别名问题,也就是两个不同的对象引用可能实际上指向的是同一个对象。例如:"
+
+#. Tag: programlisting
+#: Chapter_04.xml:41
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Here, both s1 and s2 point at the same string and a naive implementation of "
+"<command>save_state</command> could end up by copying the string twice. From "
+"a <command>save_state</command> perspective this is simply inefficient. "
+"However, it makes <command>restore_state</command> incorrect since it would "
+"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 "在这里,由于 s1 和 s2 都指向相同的字符串,<command>save_state</command> 实现可能会将其复制两次。从 <command>save_state</command> 的角度来说,这样的效率很低。然而,这会使 <command>restore_state</command> 出错,因为它会把两个字符串都解包到不同的内存区域而毁坏原始的别名信息。目前的 TxCore 版本将打包和解包不同的对象引用。"
+
+#. Tag: title
+#: Chapter_04.xml:49
+#, no-c-format
+msgid "Direct use of StateManager"
+msgstr "直接使用 StateManager"
+
+#. Tag: para
+#: Chapter_04.xml:51
+#, no-c-format
+msgid ""
+"The examples throughout this manual have always derived user classes from "
+"<classname>LockManager</classname>. The reasons for this are twofold. "
+"Firstly, and most importantly, the serialisability constraints of atomic "
+"actions require it, and secondly it reduces the need for programmer "
+"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 "本手册的所有例子中的用户类都源自 <classname>LockManager</classname>。其原因是两方面的。首先,也是最重要的一点,这是原子动作的串行性限制所要求的;其次,它减少了对程序员干涉的需要。然而,如果只要求对 <emphasis>TxCore</emphasis> 的访问的持久性和恢复机制,用户了也可以直接继承 <classname>StateManager</classname>。"
+
+#. Tag: para
+#: Chapter_04.xml:53
+#, no-c-format
+msgid ""
+"Classes derived directly from <classname>StateManager</classname> must make "
+"use of its state management mechanisms explicitly (these interactions are "
+"normally undertaken by <classname>LockManager</classname>). From a "
+"programmer's point of view this amounts to making appropriate use of the "
+"operations activate, deactivate and modified, since <classname>StateManager</"
+"classname>'s constructors are effectively identical to those of "
+"<classname>LockManager</classname>."
+msgstr ""
+"直接继承 <classname>StateManager</classname> 的类必须显性地利用其状态管理机制(这些通常由 <classname>LockManager</classname> 来承担)。从程序员的角度来看,既然 <classname>StateManager</"
+"classname> 的构造函数和 <classname>LockManager</classname> 的构造函数实际上是相等的,这就合适地利用了操作的激活、取消激活和修改。"
+
+#. Tag: programlisting
+#: Chapter_04.xml:55
+#, no-c-format
+msgid ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+msgstr ""
+"boolean activate ()\n"
+"boolean activate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:57
+#, no-c-format
+msgid ""
+"<command>Activate</command> loads an object from the object store. The "
+"object’s UID must already have been set via the constructor and the object "
+"must exist in the store. If the object is successfully read then "
+"<command>restore_state</command> is called to build the object in memory. "
+"<command>Activate</command> is idempotent so that once an object has been "
+"activated further calls are ignored. The parameter represents the root name "
+"of the object store to search for the object. A value of null means use the "
+"default store."
+msgstr "<command>Activate</command> 从 Object Store 里加载了一个对象。这个对象的 UID 必须已经通过构造函数设置且对象必须存在于 Object Store 里。如果成功地读取了这个对象,那么   <command>restore_state</command> 将被调用来在内存里构建它。<command>Activate</command> 是幂等的(idempotent),所以对象一旦被激活,后续的调用将被忽略。这里的参数代表用于搜索对象的 Object Store 的根名称。Null 值表示使用缺省的 Object Store。"
+
+#. Tag: programlisting
+#: Chapter_04.xml:59
+#, no-c-format
+msgid ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+msgstr ""
+"boolean deactivate ()\n"
+"boolean deactivate (String storeRoot)"
+
+#. Tag: para
+#: Chapter_04.xml:61
+#, no-c-format
+msgid ""
+"The inverse of activate. First calls <command>save_state</command> to build "
+"the compacted image of the object which is then saved in the object store. "
+"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 "它是激活的反操作。首先调用 <command>save_state</command> 来构建对象的压缩映像,然后将其保存在 Object Store 里。对象只有在激活后被修改过才能保存。这里的参数代表用于搜索对象的 Object Store 的根名称。Null 值表示使用缺省的 Object Store。"
+
+#. Tag: programlisting
+#: Chapter_04.xml:63
+#, no-c-format
+msgid "void modified ()"
+msgstr "void modified ()"
+
+#. Tag: para
+#: Chapter_04.xml:65
+#, no-c-format
+msgid ""
+"<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 "<emphasis>必须</emphasis>在修改内存里的对象前被调用。如果它没有被调用,对象将不能通过 deactivate 保存在 Object Store 里。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_05.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_05.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_05.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,1052 @@
+# translation of Chapter_05.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: Chapter_05\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2008-07-08 01:17+0000\n"
+"PO-Revision-Date: 2008-07-08 11:31+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: Chinese Simplified <kde-i18n-doc at lists.kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KAider 0.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. Tag: title
+#: Chapter_05.xml:6
+#, no-c-format
+msgid "Tools"
+msgstr "工具"
+
+#. Tag: title
+#: Chapter_05.xml:9
+#, no-c-format
+msgid "Introduction"
+msgstr "简介"
+
+#. Tag: para
+#: Chapter_05.xml:11
+#, no-c-format
+msgid ""
+"This chapter explains how to start and use the tools framework and what "
+"tools are available."
+msgstr "本章介绍如何启动和使用工具框架以及可用的工具。"
+
+#. Tag: title
+#: Chapter_05.xml:16
+#, no-c-format
+msgid "Starting the Transaction Service tools"
+msgstr "启动事务服务工具"
+
+#. Tag: para
+#: Chapter_05.xml:18
+#, no-c-format
+msgid ""
+"The way to start the transaction service tools differs on the operating "
+"system being used:"
+msgstr "启动事务服务工具的方法根据操作系统的不同而不同:"
+
+#. Tag: title
+#: Chapter_05.xml:21
+#, no-c-format
+msgid "Windows"
+msgstr "Windows"
+
+#. Tag: para
+#: Chapter_05.xml:23
+#, no-c-format
+msgid ""
+"Double click on the ‘Start Tools’ link in the JBoss Transaction Service "
+"program group in the start menu."
+msgstr "在启动菜单的“JBoss Transaction Service”程序组里双击“Start Tools”链接。"
+
+#. Tag: title
+#: Chapter_05.xml:27
+#, no-c-format
+msgid "Unix"
+msgstr "Unix"
+
+#. Tag: para
+#: Chapter_05.xml:29
+#, no-c-format
+msgid "Start a bash shell and type:"
+msgstr "启动一个 bash shell 并输入:"
+
+#. Tag: programlisting
+#: Chapter_05.xml:34
+#, no-c-format
+msgid ""
+"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
+#, no-c-format
+msgid ""
+"Once you have done this the tools window will appear. This is the launch "
+"area for all of the tools shipped with the <emphasis>JBoss Transaction "
+"Service</emphasis>. At the top of the window you will notice a menu bar. "
+"This menu bar has four items:"
+msgstr ""
+"之后“Tools”窗口将出现。这是 <emphasis>JBoss Transaction Service</emphasis> 所"
+"附带的所有工具的启动区。在窗口的顶部,你将看到一个菜单条。这个菜单条有 4 个选"
+"项:"
+
+#. Tag: caption
+#: Chapter_05.xml:42
+#, no-c-format
+msgid "Menu bar"
+msgstr "菜单条"
+
+#. Tag: title
+#: Chapter_05.xml:46
+#, no-c-format
+msgid "The <menuchoice><guimenu>File</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>File</guimenu></menuchoice> 菜单"
+
+#. Tag: para
+#: Chapter_05.xml:47 Chapter_05.xml:82 Chapter_05.xml:108 Chapter_05.xml:132
+#, no-c-format
+msgid "&nbsp;"
+msgstr "&nbsp;"
+
+#. Tag: term
+#: Chapter_05.xml:58
+#, no-c-format
+msgid "Open JMX Browser"
+msgstr "Open JMX Browser"
+
+#. Tag: para
+#: Chapter_05.xml:59
+#, no-c-format
+msgid ""
+"This displays the JMX browser window (see ***Using the JMX Browser for more "
+"information on how to use the JMX browser)."
+msgstr ""
+"这将显示 JMX 浏览器窗口(关于使用 JMX 浏览器的更多信息,请参考《使用 JMX 浏览"
+"器》)。"
+
+#. Tag: term
+#: Chapter_05.xml:63
+#, no-c-format
+msgid "Open Object Store Browser"
+msgstr "Open Object Store Browser"
+
+#. Tag: para
+#: Chapter_05.xml:64
+#, no-c-format
+msgid ""
+"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 ""
+"这将显示 JBossTS Object Store 浏览器窗口(关于使用 Object Store 浏览器的更多"
+"信息,请参考《使用 Object Store 浏览器》)。"
+
+#. Tag: term
+#: Chapter_05.xml:68
+#, no-c-format
+msgid "Settings"
+msgstr "Settings"
+
+#. Tag: para
+#: Chapter_05.xml:69
+#, no-c-format
+msgid ""
+"This option opens the settings dialog which lets you configure the different "
+"tools available."
+msgstr "这个选项将打开“Setting”对话框,你可以配置不同的可用工具。"
+
+#. Tag: term
+#: Chapter_05.xml:72
+#, no-c-format
+msgid "Exit"
+msgstr "Exit"
+
+#. Tag: para
+#: Chapter_05.xml:73
+#, no-c-format
+msgid ""
+"This closes the tools window and exits the application, any unsaved/"
+"unconfirmed changes will be lost."
+msgstr "这将关闭“Tools”窗口并退出应用程序,任何未保存/确认的修改都会丢失。"
+
+#. Tag: title
+#: Chapter_05.xml:81
+#, no-c-format
+msgid "The <menuchoice><guimenu>Performance</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>Performance</guimenu></menuchoice> 菜单"
+
+#. Tag: term
+#: Chapter_05.xml:93
+#, no-c-format
+msgid "Open"
+msgstr "Open"
+
+#. Tag: para
+#: Chapter_05.xml:94
+#, no-c-format
+msgid ""
+"This opens a performance window – see <xref linkend=\"Performance_Tool\"/> "
+"for more information on the performance tool."
+msgstr ""
+"这将打开“performance”窗口 - 关于性能工具的更多信息,请参考 <xref linkend="
+"\"Performance_Tool\"/>。"
+
+#. Tag: term
+#: Chapter_05.xml:98
+#, no-c-format
+msgid "Close All"
+msgstr "Close All"
+
+#. Tag: para
+#: Chapter_05.xml:99
+#, no-c-format
+msgid ""
+"this closes all of the currently open performance windows – see <xref "
+"linkend=\"Performance_Tool\"/> for more information on the performance tool."
+msgstr ""
+"这将关闭当前所有打开的“performance”窗口 - 关于性能工具的更多信息,请参考 "
+"<xref linkend=\"Performance_Tool\"/>。"
+
+#. Tag: title
+#: Chapter_05.xml:107
+#, no-c-format
+msgid "The <menuchoice><guimenu>Window</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>Window</guimenu></menuchoice> 菜单"
+
+#. Tag: term
+#: Chapter_05.xml:118
+#, no-c-format
+msgid "Cascade Windows"
+msgstr "Cascade Windows"
+
+#. Tag: para
+#: Chapter_05.xml:119
+#, no-c-format
+msgid ""
+"This arranges the windows in a diagonal line to you find a specific window."
+msgstr "这将把窗口按对角线排列,方便你查找所需的窗口。"
+
+#. Tag: term
+#: Chapter_05.xml:123
+#, no-c-format
+msgid "1. XXXXXXX"
+msgstr "1. XXXXXXX"
+
+#. Tag: para
+#: Chapter_05.xml:124
+#, no-c-format
+msgid ""
+"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 ""
+"对于当前每个可见的窗口,这里将出现一个额外的菜单选项。选择这个菜单选项将把相"
+"关联的窗口置于桌面上。"
+
+#. Tag: title
+#: Chapter_05.xml:131
+#, no-c-format
+msgid "The <menuchoice><guimenu>Help</guimenu></menuchoice> Menu"
+msgstr "<menuchoice><guimenu>Help</guimenu></menuchoice> 菜单"
+
+#. Tag: term
+#: Chapter_05.xml:142
+#, no-c-format
+msgid "About"
+msgstr "About"
+
+#. Tag: para
+#: Chapter_05.xml:143
+#, no-c-format
+msgid "This displays the about window containing the product information."
+msgstr "这会显示包含产品信息的“About”窗口。"
+
+#. Tag: title
+#: Chapter_05.xml:153
+#, no-c-format
+msgid "Using the Performance Tool"
+msgstr "使用性能工具"
+
+#. Tag: para
+#: Chapter_05.xml:155
+#, no-c-format
+msgid ""
+"The performance tool can be used to display performance information about "
+"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 ""
+"性能工具可以用来显示事务服务的性能方面的信息。这些信息是通过 Performance JMX "
+"bean 收集的,这表示事务服务需要集成到应用服务器里来提供任何性能方面的信息。"
+
+#. Tag: para
+#: Chapter_05.xml:157
+#, no-c-format
+msgid ""
+"The performance information is displayed via a multi-series graph. To view "
+"this graph simply open a performance window by selecting "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice>"
+msgstr ""
+"性能信息通过 multi-series 图表显示。要查看这个图表,你只需简单地选择 "
+"<menuchoice><guimenu>Performance</guimenu></menuchoice> &gt; "
+"<menuchoice><guimenuitem>Open</guimenuitem></menuchoice> 打开一"
+"个“performance”窗口就可以了。"
+
+#. Tag: para
+#: Chapter_05.xml:165
+#, no-c-format
+msgid ""
+"The window now on screen contains a multi-serise graph which can display the "
+"following information:"
+msgstr "现在屏幕上的窗口包含了一个 multi-series 图表,它显示下面的信息:"
+
+#. Tag: para
+#: Chapter_05.xml:170
+#, no-c-format
+msgid "Number of transactions."
+msgstr "事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:175
+#, no-c-format
+msgid "Number of committed transactions."
+msgstr "提交的事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:180
+#, no-c-format
+msgid "Number of aborted transactions."
+msgstr "中止的事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:185
+#, no-c-format
+msgid "Number of nested transactions."
+msgstr "嵌套的事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:190
+#, no-c-format
+msgid "Number of heuristics raised."
+msgstr "heuristics raised 事务的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:195
+#, no-c-format
+msgid ""
+"To turn these series on and off simply select the menu option from the "
+"series menu."
+msgstr "只要在 Series 菜单里选择不同的选项,你就可以启用或关闭相应的系列。"
+
+#. Tag: para
+#: Chapter_05.xml:203
+#, no-c-format
+msgid ""
+"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 ""
+"当某个系列被启用,它将显示在图表的底部的图例里。系列名称(例如所创建的事务)"
+"后面的颜色就是代表该类数据的线条的颜色。"
+
+#. Tag: para
+#: Chapter_05.xml:211
+#, no-c-format
+msgid ""
+"The data shown is graphed against time. The Y-axis represents the number of "
+"transactions and the X-axis represents time."
+msgstr "图表里显示的数据是针对时间的。Y 轴代表事务的数量而 X 轴代表时间。"
+
+#. Tag: para
+#: Chapter_05.xml:214
+#, no-c-format
+msgid ""
+"At any point the sampling of data can be stopped and restarted using the "
+"<menuchoice><guimenu>Sampling</guimenu></menuchoice> menu and the data "
+"currently visible in the graph can be saved to a Comma Separate Values (CSV) "
+"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 ""
+"在任何时候,数据抽样都可以用 <menuchoice><guimenu>Sampling</guimenu></"
+"menuchoice> 菜单来停止和重启,当前图表上可见的数据可以通过 "
+"<menuchoice><guimenu>Data</guimenu></menuchoice> 菜单里的 "
+"<menuchoice><guimenu>Save to .csv</guimenu></menuchoice> 菜单选项保存到一个可"
+"输出到电子表格程序里的 Comma Separate Values (CSV) 文件。"
+
+#. Tag: title
+#: Chapter_05.xml:219
+#, no-c-format
+msgid "Using the JMX Browser"
+msgstr "使用 JXM 浏览器"
+
+#. Tag: para
+#: Chapter_05.xml:220
+#, no-c-format
+msgid ""
+"To open the JMX browser window click on the <menuchoice><guimenu>File</"
+"guimenu></menuchoice> menu and then click the <menuchoice><guimenu>Open JMX "
+"Browser</guimenu></menuchoice> option. The JMX browser window will then be "
+"displayed."
+msgstr ""
+"要打开 JMX 浏览器窗口,你可以点击 <menuchoice><guimenu>File</guimenu></"
+"menuchoice> 菜单并选择 <menuchoice><guimenu>Open JMX Browser</guimenu></"
+"menuchoice> 选项。然后 JMX 浏览器窗口就会显示。"
+
+#. Tag: para
+#: Chapter_05.xml:228
+#, no-c-format
+msgid ""
+"The window is made up of two main sections:the details panel and the MBean "
+"panel. The MBean panel displays the MBeans exposed by the MBean server. "
+"These are grouped by domain name. The details panel displays information "
+"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 ""
+"这个窗口由两个主要部分组成:Details 面板和 MBean 面板。MBean 面板显示 MBean "
+"服务所开放的 MBean。它们通过域名分组。Details 面板显示当前所选择的 MBean 的信"
+"息。要选择某个 MBean,只要用鼠标点击它使其高亮显示就可以了。Details 面板显示"
+"的信息如下:"
+
+#. Tag: para
+#: Chapter_05.xml:233
+#, no-c-format
+msgid "The total number of MBeans registered on this server."
+msgstr "在这个服务器里注册的 MBean 的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:238
+#, no-c-format
+msgid "The number of constructors exposed by this MBean."
+msgstr "这个 MBean 开放的构造函数的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:243
+#, no-c-format
+msgid "The number of attributes exposed by this MBean."
+msgstr "这个 MBean 开放的属性的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:248
+#, no-c-format
+msgid "The number of operations exposed by this MBean."
+msgstr "这个 MBean 开放的操作的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:253
+#, no-c-format
+msgid "The number of notifications exposed by this MBean."
+msgstr "这个 MBean 开放的通知的数量。"
+
+#. Tag: para
+#: Chapter_05.xml:258
+#, no-c-format
+msgid "A brief description of the MBean."
+msgstr "对这个 MBean 的简短描述。"
+
+#. Tag: para
+#: Chapter_05.xml:263
+#, no-c-format
+msgid ""
+"There is also a <menuchoice><guimenu>View</guimenu></menuchoice> link which "
+"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 ""
+"这里也有一个 <menuchoice><guimenu>View</guimenu></menuchoice> 链接,点击它将"
+"显示这个 MBean 开放的属性和操作。在这里你可以查看可读的属性、修改可写的属性并"
+"调用操作。"
+
+#. Tag: caption
+#: Chapter_05.xml:270
+#, no-c-format
+msgid "An example of what the details panel displays"
+msgstr "Details 面板显示的例子"
+
+#. Tag: title
+#: Chapter_05.xml:273
+#, no-c-format
+msgid "Using Attributes and Operations"
+msgstr "使用属性和操作"
+
+#. Tag: para
+#: Chapter_05.xml:274
+#, no-c-format
+msgid ""
+"When the <menuchoice><guimenu>View</guimenu></menuchoice> link is clicked "
+"the View JMX Attributes and Operations window is displayed. From here you "
+"can view all readable attributes exposed by the selected MBean. You can also "
+"alter writeable attributes. If an attribute is read-only then you will not "
+"be able to alter an attributes value. To alter an attributes value just "
+"double click on the current value and enter the new value. If the "
+"<guibutton>...</guibutton> button is enabled then you can click this to view "
+"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 ""
+"当点击 <menuchoice><guimenu>View</guimenu></menuchoice> 链接时,“View JMX "
+"Attributes and Operations”窗口将显示。在这里你可以查看所选择的 MBean 开放的所"
+"有可读属性。你也可以修改可写属性。如果某个属性是只读的,你将不能修改其属性"
+"值。要修改某个属性值,你只需双击当前值并输入新的值就可以了。如果启用"
+"了“<guibutton>...</guibutton>”按钮,你就可以点击它来查看更合适的编辑方法。如"
+"果这个属性的类型是 JMX 对象名,点击这个按钮将显示该对象的 JMX 属性和操作。"
+
+#. Tag: para
+#: Chapter_05.xml:277
+#, no-c-format
+msgid ""
+"At any point you can click the <guibutton>Refresh</guibutton> button to "
+"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 ""
+"在任何时候你都可以点击“<guibutton>Refresh</guibutton>”按钮来刷新属性值。在获"
+"取属性值时如果发生了异常,这个异常将被显示来替代属性值。"
+
+#. Tag: para
+#: Chapter_05.xml:280
+#, no-c-format
+msgid ""
+"You can also invoke operations upon an MBean. A list of operations exposed "
+"by an MBean is displayed below the attributes list. To invoke an operation "
+"simply select it from the list and click the <guibutton>Invoke</guibutton> "
+"button. If the operation requires parameters a further window will be "
+"displayed, from this window you must specify values for each of the "
+"parameters required. You specify parameter values in the same way as you "
+"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 ""
+"你也可以调用 MBean 的操作。MBean 开放的操作显示在属性列表下面。要调用某个操"
+"作,只要简单地从列表里选择它并点击“<guibutton>Invoke</guibutton>”按钮。如果这"
+"个操作要求输入参数,另外一个窗口将出现,你必须指定每个必需参数的值。你可以用"
+"和指定 JMX 属性值相同的方法来指定参数值。在指定了参数值后,你可以点"
+"击“<guibutton>Invoke</guibutton>”按钮来执行该操作。"
+
+#. Tag: para
+#: Chapter_05.xml:283
+#, no-c-format
+msgid ""
+"Once the method invocation has completed its return value will be displayed."
+msgstr "方法调用完毕后,它的返回值将被显示。"
+
+#. Tag: caption
+#: Chapter_05.xml:290
+#, no-c-format
+msgid "View JMX Attributes and Operations window"
+msgstr "查看 JMX Attributes and Operations 窗口"
+
+#. Tag: caption
+#: Chapter_05.xml:296
+#, no-c-format
+msgid "Invoke Operation Parameters"
+msgstr "调用操作的参数"
+
+#. Tag: title
+#: Chapter_05.xml:300
+#, no-c-format
+msgid "Using the Object Store Browser"
+msgstr "使用 Object Store 浏览器"
+
+#. Tag: para
+#: Chapter_05.xml:301
+#, no-c-format
+msgid ""
+"To open the Object Store browser window click on the "
+"<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 ""
+"要打开 Object Store browser 窗口,你可以点击 <menuchoice><guimenu>File</"
+"guimenu></menuchoice> 菜单并选择 <menuchoice><guimenu>Open Object Store "
+"Browser</guimenu></menuchoice> 选项。然后 Object Store browser 窗口将出现。"
+
+#. Tag: para
+#: Chapter_05.xml:309
+#, no-c-format
+msgid "The object store browser window is split into four sections:"
+msgstr "object store browser 窗口分成 4 个部分:"
+
+#. Tag: para
+#: Chapter_05.xml:319
+#, no-c-format
+msgid ""
+"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 ""
+"Object Store Roots - 这是当前可用 Object Store 根的列表。从这个列表里进行选"
+"择将重新构成所选根的内容的层次结构。"
+
+#. Tag: para
+#: Chapter_05.xml:324
+#, no-c-format
+msgid ""
+"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 ""
+"Object Store Hierarchy – 这是表示当前 Object Store 层次结构的树。从这个树里选"
+"择一个节点将显示它存储的对象。"
+
+#. Tag: para
+#: Chapter_05.xml:329
+#, no-c-format
+msgid ""
+"Objects – this is a list of icons which represent the objects stored in the "
+"selected location."
+msgstr "Objects – 这是一个图标列表,它代表存储在所选位置的对象。"
+
+#. Tag: para
+#: Chapter_05.xml:334
+#, no-c-format
+msgid ""
+"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 ""
+"Object Details – 它显示当前所选的对象的信息(只有这个对象的类型为状态查看器库"
+"所知时才适用,请参考《Writing an OSV》里关于如何编写对象状态查看器里的信息)"
+
+#. Tag: title
+#: Chapter_05.xml:341
+#, no-c-format
+msgid "Object State Viewers (OSV)"
+msgstr "对象状态查看器(Object State Viewer,OSV)"
+
+#. Tag: para
+#: Chapter_05.xml:342
+#, no-c-format
+msgid ""
+"When an object is selected in the objects pane of the main window the "
+"registered Object State Viewer (or OSV) for that object type is invoked. An "
+"OSV’s job is to make information available via the user interface to the "
+"user to show information about the selected object. Distributed with the "
+"standard tools is an OSV for Atomic Actions, the OSV displays information on "
+"the Abstract Records in it’s various lists (e.g. heuristic, failed, read-"
+"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 ""
+"当主窗口的 Objects 面板里的对象被选择时,用于该对象的已注册对象状态查看器"
+"(Object State Viewer,或 OSV)将被调用。OSV 的任务是通过用户界面使用户可以获"
+"得所选对象的信息。随标准工具一起发布的有用于原子动作的 OSV,它在不同的列表里"
+"(如 heuristic、failed、read-only等)显示抽象记录(Abstract Record)信息。你"
+"也可以编写自己的 OSV 来显示自定义的对象类型的信息。后面我们将涵盖这方面的内"
+"容。"
+
+#. Tag: title
+#: Chapter_05.xml:346
+#, no-c-format
+msgid "Writing an OSV"
+msgstr "编写 OSV"
+
+#. Tag: para
+#: Chapter_05.xml:347
+#, no-c-format
+msgid ""
+"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 ""
+"编写 OSV 插件允许你扩展 Object Store 浏览器的能力来显示用户自定义的抽象记录"
+"(Abstract Record)的状态。OSV 插件其实只是实现下面接口的类:"
+
+#. Tag: code
+#: Chapter_05.xml:352
+#, no-c-format
+msgid ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+msgstr ""
+"com.arjuna.ats.tools.objectstorebrowser.stateviewers.StateViewerInterface"
+
+#. Tag: para
+#: Chapter_05.xml:354
+#, no-c-format
+msgid ""
+"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 ""
+"它必须打包在 plugins 目录里的某个 JAR 里。这个例子展示了如何创建一个用于如下"
+"的抽象记录(Abstract Record)子类的 OSV 插件:"
+
+#. Tag: screen
+#: Chapter_05.xml:357
+#, no-c-format
+msgid ""
+"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"
+"}"
+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:358
+#, no-c-format
+msgid ""
+"When this abstract record is viewed in the object store browser it would be "
+"nice to see the current value. This is easy to do as we can read the state "
+"into an instance of our abstract record and call <methodname>getValue()</"
+"methodname>. The following is the object store browser plug-in source code:"
+msgstr ""
+"当用 Object Store 浏览器查看这个抽象记录时,查看当前值是个不错的主意。我们可"
+"以把状态读入绝对记录的实例并调用 <methodname>getValue()</methodname>。下面是 "
+"Object Store 浏览器插件的源代码:"
+
+#. Tag: screen
+#: Chapter_05.xml:361
+#, no-c-format
+msgid ""
+"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"
+"}"
+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:362
+#, no-c-format
+msgid ""
+"The method <methodname>uidNodeExpanded</methodname> is invoked when a UID "
+"(Unique Identification) representing the given type is expanded in the "
+"object store hierarchy tree. This is not required by this plugin as this "
+"abstract record is not visible in the object store directly it is only "
+"viewable via one of the lists in an atomic action. The method "
+"<methodname>entrySelected</methodname> is invoked when an entry is selected "
+"from the object view which represents an object with the given type. In both "
+"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 ""
+"当在 Object Store 层次结构树里展开代表给定类型的 UID(Unique Identification)"
+"时,<methodname>uidNodeExpanded</methodname> 方法将被调用。这个插件不要求这"
+"样,因为绝对记录并不在 Object Store 里直接可见,它只有通过某个原子动作里的列"
+"表才可见。当从代表给定类型的对象视图里选择一个条目时,"
+"<methodname>entrySelected</methodname> 方法将被调用。在这两个方法里,"
+"StatePanel 都被用来显示对象状态的信息。StatePanel 具有如下的有助这些信息显示"
+"的方法:"
+
+#. Tag: para
+#: Chapter_05.xml:367
+#, no-c-format
+msgid ""
+"<methodname>setInfo(String info)</methodname>: This method can be used to "
+"show general information."
+msgstr "<methodname>setInfo(String info)</methodname>:这个方法可以用来显示一般信息。"
+
+#. Tag: para
+#: Chapter_05.xml:372
+#, no-c-format
+msgid ""
+"<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 ""
+"<methodname>setData(String name, String value)</methodname>:这个方法用来把信"
+"息放入 Object Store 浏览器工具显示的表里。"
+
+#. Tag: para
+#: Chapter_05.xml:377
+#, no-c-format
+msgid ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>: This method is used to enable the details button. The listener "
+"interface allows a plug-in to be informed when the button is pressed. It is "
+"up to the plug-in developer to decide how to display this further "
+"information."
+msgstr ""
+"<methodname>enableDetailsButton(DetailsButtonListener listener)</"
+"methodname>:这个方法用来启用 Details 按钮。Listener 接口允许按钮被按下时通知"
+"插件。怎样显示进一步的信息可由插件开发人员来决定。"
+
+#. Tag: para
+#: Chapter_05.xml:382
+#, no-c-format
+msgid ""
+"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 ""
+"在这个例子里,我们从 Object Store 里读取状态并使用 getValue() 返回的值来把一"
+"个条目放入 StatePanel 表。getType() 方法返回这个插件用来注册的类型。"
+
+#. Tag: para
+#: Chapter_05.xml:385
+#, no-c-format
+msgid ""
+"To add this plug-in to the object store browser it is necessary to package "
+"it into a JAR (Java Archive) file with a name that is prefixed with 'osbv-'. "
+"The JAR file must contain certain information within the manifest file so "
+"that the object store browser knows which classes are plug-ins. All of this "
+"can be performed using an <ulink url=\"http://ant.apache.org\">Apache ANT</"
+"ulink> script, as follows:"
+msgstr ""
+"要把这个插件添加到 Object Store 浏览器里,我们有必要把它打包至一个 JAR 文件"
+"里,其名称前缀为 'osbv-'。这个 JAR 文件必须包含 manifest 文件里的某些信息,这"
+"样 Object Store 浏览器就知道哪些类是插件。所有这些都可以用 <ulink url="
+"\"http://ant.apache.org\">Apache ANT</ulink> 脚本来执行,如:"
+
+#. Tag: screen
+#: Chapter_05.xml:388
+#, no-c-format
+msgid ""
+"&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;"
+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:389
+#, no-c-format
+msgid ""
+"Once the JAR has been created with the correct information in the manifest "
+"file it just needs to be placed in the <emphasis>bin/tools/plugins</"
+"emphasis> directory."
+msgstr ""
+"用 manifest 文件里的正确信息创建了 JAR 文件后,我们需要把它放入 "
+"<emphasis>bin/tools/plugins</emphasis> 目录里。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_06.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_06.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_06.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,872 @@
+# translation of Chapter_06.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-30 10:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_06.xml:6
+#, no-c-format
+msgid "Constructing a Transactional objects for Java application"
+msgstr "构建用于 Java 应用程序的事务性对象"
+
+#. Tag: title
+#: Chapter_06.xml:9
+#, no-c-format
+msgid "Application construction"
+msgstr "应用程序构建"
+
+#. Tag: para
+#: Chapter_06.xml:10
+#, no-c-format
+msgid "There are two distinct phases to the development of a TxCore application:"
+msgstr "开发 TxCore 应用程序分为两个不同的阶段:"
+
+#. Tag: para
+#: Chapter_06.xml:15
+#, no-c-format
+msgid ""
+"Developing new classes with certain characteristics (for example, "
+"Persistent, Recoverable, Concurrency Controlled)."
+msgstr "采用某些特征(如:持久的、可恢复的、并行控制)开发新的类。"
+
+#. Tag: para
+#: Chapter_06.xml:20
+#, no-c-format
+msgid "Developing the application(s) that make use of the new classes of objects."
+msgstr "开发利用新类的应用程序。"
+
+#. Tag: para
+#: Chapter_06.xml:25
+#, no-c-format
+msgid ""
+"Although these two phases may be performed in parallel and by a single "
+"person, we shall refer to the first step as the job of the class developer "
+"and the second as the job of the applications developer. The class developer "
+"will be concerned about defining appropriate <code>save_state</code> and "
+"<code>restore_state</code> operations for the class, setting appropriate "
+"locks in operations, and invoking the appropriate TxCore class constructors. "
+"The applications developer will be more concerned with defining the general "
+"structure of the application, particularly with regard to the use of atomic "
+"actions."
+msgstr ""
+"虽然这两个阶段可以由同一个人同时进行,但我们宁愿把第一个步骤分配给类开发人员而把第二个分配给应用程序开发人员。类开发人员将关心如何定义合适的 <code>save_state</code> 和 "
+"<code>restore_state</code> 操作、为操作设置合适的锁以及调用合适的 TxCode 类构造函数。应用程序开发人员则更关心定义应用程序的通用结构,尤其是关于原子动作(atomic action)的使用。"
+
+#. Tag: para
+#: Chapter_06.xml:28
+#, no-c-format
+msgid ""
+"This chapter illustrates the points made in previous sections by outlining a "
+"simple application: in this case a simple FIFO Queue class for integer "
+"values will be developed. The implementation of the Queue will be with a "
+"doubly linked list structure, and it will be implemented as a single object. "
+"We shall be using this example throughout the rest of this manual to help "
+"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 "本章将通过一个简单例子解释前面提及的内容,我们将开发一个简单的使用整形值的 FIFO Queue 类。队列的实现将使用一个双重链表的结构,且将作为单个对象来实现。我们将在整个手册里使用这个例子来帮助解释 TxCore 提供的不同机制。虽然这只是一个不实用的例程,但你不需要对程序代码有很深的知识就可以通过它了解所有的 TxCore 修改。"
+
+#. Tag: para
+#: Chapter_06.xml:31
+#, no-c-format
+msgid ""
+"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 "在本章的剩余部分我们将假定这个程序是非分布式的。否则上下文信息必须显性或隐形地传递。"
+
+#. Tag: title
+#: Chapter_06.xml:35
+#, no-c-format
+msgid "Queue description"
+msgstr "队列描述"
+
+#. Tag: para
+#: Chapter_06.xml:36
+#, no-c-format
+msgid ""
+"The queue is a traditional FIFO queue, where elements are added to the front "
+"and removed from the back. The operations provided by the queue class allow "
+"the values to be placed on to the queue (enqueue) and to be removed from it "
+"(dequeue), and it is also possible to change or inspect the values of "
+"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 "这个队列是一个传统的 FIFO 对列,元素被加入到前面并从后面进行删除。队列类提供的操作允许往队列里放入值(enqueue)并可以从中进行删除(dequeue),而且可以修改或查看队列里的值。在这个例子里,我们使用一个数组来代表队列。在这个例子里,我们将限制最大元素个数为 <code>QUEUE_SIZE</code>。"
+
+#. Tag: para
+#: Chapter_06.xml:40
+#, no-c-format
+msgid "The Java interface definition of this simple queue class is given below:"
+msgstr "这个简单的队列类的 Java 接口定义如下:"
+
+#. Tag: screen
+#: Chapter_06.xml:43
+#, no-c-format
+msgid ""
+"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"
+"};"
+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 "构造函数和构析函数 "
+
+#. Tag: para
+#: Chapter_06.xml:46
+#, no-c-format
+msgid ""
+"As stated in the previous section, to use an existing persistent object "
+"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 "如之前章节所述,要使用一个现有的持久性对象,你需要使用特殊的构造函数来获取持久性对象的 UID;下面是一个这样的构造函数实现:"
+
+#. Tag: screen
+#: Chapter_06.xml:50
+#, no-c-format
+msgid ""
+"public TransactionalQueue (Uid u)\n"
+"{\n"
+"        super(u);\n"
+"        \n"
+"        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 "创建新的持久性对象的构造函数是相似的:"
+
+#. Tag: screen
+#: Chapter_06.xml:54
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"The use of an atomic action within the constructor for a new object follows "
+"the guidelines outlined earlier and ensures that the object’s state will be "
+"written to the object store when the appropriate top level atomic action "
+"commits (which will either be the action A or some enclosing action active "
+"when the <code>TransactionalQueue</code> was constructed). The use of atomic "
+"actions in a constructor is simple: an action must first be declared and its "
+"begin operation invoked; the operation must then set an appropriate lock on "
+"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 "在新对象的构造函数里使用原子动作(atomic action)遵循了之前描述的准则,这也确保了当合适的顶层原子动作提交时(也可以是动作 A 或者 <code>TransactionalQueue</code> 构造时活动的某个封装的动作),对象的状态将被写入到 Object Store。在构造函数里使用原子动作很简单:动作首先必须被声明并调用 begin 操作;操作然后必须为对象设置合适的锁(在这个例子里需要 <code>WRITE</code> 锁),最后再执行构造函数的主体。如果这个过程成功完成的话,原子动作将被提交,否则会被中止。"
+
+#. Tag: para
+#: Chapter_06.xml:58
+#, no-c-format
+msgid ""
+"The destructor of the queue class is only required to call the terminate "
+"operation of <methodname>LockManager</methodname>"
+msgstr "这个 Queue 类的构析函数只需要调用 <methodname>LockManager</methodname> 的 terminate 操作。"
+
+#. Tag: screen
+#: Chapter_06.xml:61
+#, no-c-format
+msgid ""
+"public void finalize ()\n"
+"{\n"
+"        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 "save_state、resotre_state 和 type"
+
+#. Tag: para
+#: Chapter_06.xml:64
+#, no-c-format
+msgid ""
+"The implementations of save_state and restore_state are relatively simple "
+"for this example:"
+msgstr "这个例子的 save_state 和 restore_state 的实现相对简单:"
+
+#. Tag: screen
+#: Chapter_06.xml:68
+#, no-c-format
+msgid ""
+"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"
+"}"
+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
+#, no-c-format
+msgid ""
+"Because the Queue class is derived from the <classname>LockManager</"
+"classname> class, the operation type should be:"
+msgstr ""
+"因为 Queue 类源自 <classname>LockManager</"
+"classname> 类,所以 type 操作应该为:"
+
+#. Tag: screen
+#: Chapter_06.xml:72
+#, no-c-format
+msgid ""
+"public String type ()\n"
+"{\n"
+"        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 "enqueue/dequeue 操作"
+
+#. Tag: para
+#: Chapter_06.xml:75
+#, no-c-format
+msgid ""
+"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 "如果把 Queue 类的操作编写为原子动作,enqueue 操作可以具有下面的结构(dequeue 操作的结构将很类似):"
+
+#. Tag: screen
+#: Chapter_06.xml:79
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "queueSize"
+
+#. Tag: para
+#: Chapter_06.xml:82
+#, no-c-format
+msgid "The implementation of <methodname>queueSize</methodname> is shown below:"
+msgstr "下面是 <methodname>queueSize</methodname> 的实现:"
+
+#. Tag: screen
+#: Chapter_06.xml:84
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "inspectValue/setValue 操作"
+
+#. Tag: para
+#: Chapter_06.xml:87
+#, no-c-format
+msgid ""
+"The implementation of <methodname>inspectValue</methodname> is shown below. "
+"<methodname>setValue</methodname> is similar, and not shown."
+msgstr "下面是 <methodname>inspectValue</methodname> 的实现。这里没有列出类似的 <methodname>setValue</methodname>。"
+
+#. Tag: screen
+#: Chapter_06.xml:91
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "客户端"
+
+#. Tag: para
+#: Chapter_06.xml:94
+#, no-c-format
+msgid ""
+"Rather than show all of the code for the client, we shall concentrate on a "
+"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 "我们不会展示所有的客户端代码,我们将专注于具有代表性的部分。在调用对象的操作之前,显然客户端必须首先绑定该对象。在本地调用的情况下,这只需要客户端简单地创建该对象的实例就可以了。"
+
+#. Tag: screen
+#: Chapter_06.xml:98
+#, no-c-format
+msgid ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+msgstr ""
+"public static void main (String[] args)\n"
+"{\n"
+"TransactionalQueue myQueue = new TransactionalQueue();"
+
+#. Tag: para
+#: Chapter_06.xml:99
+#, no-c-format
+msgid ""
+"Before invoking one of the queue’s operations, the client starts a "
+"transaction. The <methodname>queueSize</methodname> operation is shown below:"
+msgstr "在调用队列的某个操作之前,客户端可以启动一个事务。下面是 <methodname>queueSize</methodname> 操作:"
+
+#. Tag: screen
+#: Chapter_06.xml:102
+#, no-c-format
+msgid ""
+"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"
+"}"
+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 "注释"
+
+#. Tag: para
+#: Chapter_06.xml:105
+#, no-c-format
+msgid ""
+"Since the queue object is persistent, then the state of the object will "
+"survive any failures of the node on which it is located. The state of the "
+"object that will survive is that produced by the last top-level committed "
+"atomic action performed on the object. If it is the intention of an "
+"application to perform two enqueue operations atomically, for example, then "
+"this can be done by nesting the enqueue operations in another enclosing "
+"atomic action. In addition, concurrent operations on such a persistent "
+"object will be serialised, thereby preventing inconsistencies in the state "
+"of the object. However, since the elements of the queue objects are not "
+"individually concurrency controlled, certain combinations of concurrent "
+"operation invocations will be executed serially, whereas logically they "
+"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 "既然 Queue 对象是持久的,那么不管它所在的节点发生什么故障,它的状态都可以继续生存。这个状态由最后提交的顶层原子动作来产生。如果应用程序的目的是执行两个原子的 enqueue 操作,这可以通过把一个 enqueue 操作嵌套在另外一个里来实现。此外,这样的持久性对象上的并行操作将被序列化,因此防止了对象状态的不一致性。然而,既然 Queue 对象的元素并不是被独立地并行控制的,某些并行操作调用的组合将被串行地执行,而从逻辑上来将它们可以是并行运行的。例如修改队列里的两个不同元素的状态。在下一节,我们将解决其中的一些问题。"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_07.po
===================================================================
--- labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_07.po	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/Chapter_07.po	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+# translation of Chapter_07.po to
+# Language zh-CN translations for JBoss_TS_Programmers_Guide package.
+#
+# Automatically generated, 2008.
+# Xi HUANG <xhuang at redhat.com>, 2008.
+msgid ""
+msgstr ""
+"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-26 15:21+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team:  <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: Chapter_07.xml:6
+#, no-c-format
+msgid "Configuration options"
+msgstr "配置选项"
+
+#. Tag: title
+#: Chapter_07.xml:9
+#, no-c-format
+msgid "Options"
+msgstr "选项"
+
+#. Tag: para
+#: Chapter_07.xml:10
+#, no-c-format
+msgid ""
+"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 "下表展示了配置特征,斜体字表示缺省值。每个选项的更多细节可以要在本文档的相关部分找到。"
+
+#. Tag: title
+#: Chapter_07.xml:14
+#, no-c-format
+msgid "TxCore configuration options."
+msgstr "TxCore 配置选项。"
+
+#. Tag: entry
+#: Chapter_07.xml:18
+#, no-c-format
+msgid "Configuration Name"
+msgstr "配置名称"
+
+#. Tag: entry
+#: Chapter_07.xml:21
+#, no-c-format
+msgid "Possible Values"
+msgstr "可能的取值"
+
+#. Tag: entry
+#: Chapter_07.xml:24
+#, no-c-format
+msgid "Description"
+msgstr "描述"
+
+#. Tag: entry
+#: Chapter_07.xml:31
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeSync"
+
+#. Tag: entry
+#: Chapter_07.xml:34 Chapter_07.xml:145
+#, no-c-format
+msgid "ON/OFF"
+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 "启用或关闭 Object Store 的同步。请小心使用本选项。"
+
+#. Tag: entry
+#: Chapter_07.xml:42
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.storeType"
+msgstr "com.arjuna.ats.arjuna.objectstore.storeType"
+
+#. Tag: entry
+#: Chapter_07.xml:45
+#, no-c-format
+msgid "ShadowStore/ShadowNoFileLockStore/JDBCStore/HashedStore"
+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 "指定使用的 Object Store 实现的类型。"
+
+#. Tag: entry
+#: Chapter_07.xml:53
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+msgstr "com.arjuna.ats.arjuna.objectstore.hashedDirectories"
+
+#. Tag: entry
+#: Chapter_07.xml:56
+#, no-c-format
+msgid "255/any integer value"
+msgstr "255/任何整型值"
+
+#. Tag: entry
+#: Chapter_07.xml:59
+#, no-c-format
+msgid ""
+"Set the number of directories to hash object states over for the HashedStore "
+"object store implementation."
+msgstr "设置 HasehdStore Object Store 实现的 hash 对象状态的目录数。"
+
+#. Tag: entry
+#: Chapter_07.xml:64
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreType"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreType"
+
+#. Tag: entry
+#: Chapter_07.xml:67
+#, no-c-format
+msgid "BasicLockStore/BasicPersistentLockStore"
+msgstr "BasicLockStore/BasicPersistentLockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:70
+#, no-c-format
+msgid "Specify the type of the lock store implementation to use."
+msgstr "指定所使用的 Lock Store 实现的类型。"
+
+#. Tag: entry
+#: Chapter_07.xml:75
+#, no-c-format
+msgid "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+msgstr "com.arjuna.ats.txoj.lockstore.lockStoreDir"
+
+#. Tag: entry
+#: Chapter_07.xml:78
+#, no-c-format
+msgid "Windows: .\\LockStore Unix: ./LockStore"
+msgstr "Windows: .\\LockStore Unix: ./LockStore"
+
+#. Tag: entry
+#: Chapter_07.xml:82
+#, no-c-format
+msgid "Specify the location of the lock store."
+msgstr "指定 Lock Store 的位置。"
+
+#. Tag: entry
+#: Chapter_07.xml:87
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+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 "应用程序可以写入的任何位置。"
+
+#. Tag: entry
+#: Chapter_07.xml:93
+#, no-c-format
+msgid "Specify the location of the object store."
+msgstr "指定 Object Store 的位置。"
+
+#. Tag: entry
+#: Chapter_07.xml:98
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+msgstr "com.arjuna.ats.arjuna.objectstore.localOSRoot"
+
+#. Tag: entry
+#: Chapter_07.xml:101
+#, no-c-format
+msgid "defaultStore"
+msgstr "defaultStore"
+
+#. Tag: entry
+#: Chapter_07.xml:104
+#, no-c-format
+msgid "Specify the name of the object store root."
+msgstr "指定 Object Store 的根名称。"
+
+#. Tag: entry
+#: Chapter_07.xml:109
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.actionStore"
+msgstr "com.arjuna.ats.arjuna.coordinator.actionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:112
+#, no-c-format
+msgid "ActionStore/HashedActionStore/JDBCActionStore"
+msgstr "ActionStore/HashedActionStore/JDBCActionStore"
+
+#. Tag: entry
+#: Chapter_07.xml:115
+#, no-c-format
+msgid "The transaction log implementation to use."
+msgstr "使用的事务日志实现。"
+
+#. Tag: entry
+#: Chapter_07.xml:120
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncCommit"
+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 "YES/NO"
+
+#. Tag: entry
+#: Chapter_07.xml:126
+#, no-c-format
+msgid "Turns on or off (default) asynchronous commit."
+msgstr "启用/关闭(缺省)异步提交。"
+
+#. Tag: entry
+#: Chapter_07.xml:131
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.asyncPrepare"
+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 "启用/关闭(缺省)异步 prepare。"
+
+#. Tag: entry
+#: Chapter_07.xml:142
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.transactionSync"
+msgstr "com.arjuna.ats.arjuna.objectstore.transactionSync"
+
+#. Tag: entry
+#: Chapter_07.xml:153
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
+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 "JDBCAccess 类名"
+
+#. Tag: entry
+#: Chapter_07.xml:159
+#, no-c-format
+msgid "The JDBCAccess implementation to use for user-level object stores."
+msgstr "用于用户级的 Object Store 的 JDBCAccess 实现。"
+
+#. Tag: entry
+#: Chapter_07.xml:164
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
+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 "用于事务 Object Store 的 JDBCAccess 实现。"
+
+#. Tag: entry
+#: Chapter_07.xml:175
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.commitOnePhase"
+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 "启用/禁用一阶段的提交优化。"
+
+#. Tag: entry
+#: Chapter_07.xml:186
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.readonlyOptimisation"
+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 "启用/禁用用于第二阶段终止的只读优化。"
+
+#. Tag: entry
+#: Chapter_07.xml:197
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+msgstr "com.arjuna.ats.arjuna.coordinator.enableStatistics"
+
+#. Tag: entry
+#: Chapter_07.xml:203
+#, no-c-format
+msgid "Start/stop collecting transaction statistic information."
+msgstr "启动/停止收集事务统计信息。"
+
+#. Tag: entry
+#: Chapter_07.xml:208
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.startDisabled"
+msgstr "com.arjuna.ats.arjuna.coordinator.startDisabled"
+
+#. Tag: entry
+#: Chapter_07.xml:214
+#, no-c-format
+msgid ""
+"Start with the transaction system enabled or disabled. Toggle via the com."
+"arjuna.ats.arjuna.coordinator.TxControl class."
+msgstr ""
+"启动时启用或禁用事务系统。用 com."
+"arjuna.ats.arjuna.coordinator.TxControl 类进行切换。"
+
+#. Tag: entry
+#: Chapter_07.xml:219
+#, no-c-format
+msgid "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+msgstr "com.arjuna.ats.arjuna.coordinator.defaultTimeout"
+
+#. Tag: entry
+#: Chapter_07.xml:222
+#, no-c-format
+msgid "Integer"
+msgstr "æ•´åž‹"
+
+#. Tag: entry
+#: Chapter_07.xml:225
+#, no-c-format
+msgid "Timeout in milliseconds"
+msgstr "超时时间(毫秒)"
+

Added: labs/jbosstm/enterprise/trunk/Programmers_Guide/zh-CN/JBoss_TS_Programmers_Guide.po
===================================================================

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+#Makefile for Transactions_Failure_Recovery_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+OTHER_LANGS	= ja-JP
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Architecture_of_the_Recovery_Manager.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,745 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager">
+	<title>Architecture of the Recovery Manager</title>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Crash_Recovery_Overview">
+		<title>Crash Recovery Overview</title>
+		<para>
+			The main architectural components within Crash Recovery are illustrated in the diagram below:
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Crash_Recovery_Architecture.png" format="PNG" />
+			</imageobject>
+		</mediaobject>
+		<para>
+			The Recovery Manager is a daemon process responsible for performing crash recovery. Only one Recovery Manager runs per node. The Object Store provides persistent data storage for transactions to log data. During normal transaction processing each transaction will log persistent data needed for the commit phase to the Object Store. On successfully committing a transaction this data is removed, however if the transaction fails then this data remains within the Object Store.
+		</para>
+		<para>
+			The Recovery Manager functions by:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Periodically scanning the Object Store for transactions that may have failed. Failed transactions are indicated by the presence of log data after a period of time that the transaction would have normally been expected to finish.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Checking with the application process which originated the transaction whether the transaction is still in progress or not.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Recovering the transaction by re-activating the transaction and then replaying phase two of the commit protocol.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The following sections describe the architectural components in more detail
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Recovery_Manager">
+		<title>Recovery Manager</title>
+		<para>
+			On initialization the Recovery Manager first loads in configuration information via a properties file. This configuration includes a number of recovery activators and recovery modules, which are then dynamically loaded.
+		</para>
+		<para>
+			Since the version 3.0 of JBossTS, the Recovery Manager is not specifically tied to an Object Request Broker or ORB. Hence, the OTS recovery protocol is not implicitly enabled. To enable such protocol, we use the concept of recovery activator, defined with the interface <interfacename>RecoveryActivator</interfacename>, which is used to instantiate a recovery class related to the underlying communication protocol. For instance, when used with OTS, the <interfacename>RecoveryActivitor</interfacename> has the responsibility to create a RecoveryCoordinator object able to respond to the replay_completion operation.
+		</para>
+		<para>
+			All <interfacename>RecoveryActivator</interfacename> instances inherit the same interface. They are loaded via the following recovery extension property:
+		</para>
+<screen>
+&lt;property  
+		   name="com.arjuna.ats.arjuna.recovery.recoveryActivator_&lt;number&gt;" value="RecoveryClass" /&gt;
+</screen>
+		<para>
+			For instance the <interfacename>RecoveryActivator</interfacename> provided in the distribution of JTS/OTS, which shall not be commented, is as follow:
+		</para>
+<screen>
+&lt;property 
+	name="com.arjuna.ats.arjuna.recovery.recoveryActivator_1" value="com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement/&gt;
+</screen>
+		<para>
+			When loaded all <interfacename>RecoveryActivator</interfacename> instances provide the method <methodname>startRCservice</methodname> invoked by the Recovery Manager and used to create the appropriate Recovery Component able to receive recovery requests according to a particular transaction protocol. For instance the RecoveryCoordinator defined by the OTS protocol.
+		</para>
+		<para>
+			Each recovery module is used to recover a different type of transaction/resource, however each recovery module inherits the same basic behavior.
+		</para>
+		<para>
+			Recovery consists of two separate passes/phases separated by two timeout periods. The first pass examines the object store for potentially failed transactions; the second pass performs crash recovery on failed transactions. The timeout between the first and second pass is known as the backoff period. The timeout between the end of the second pass and the start of the first pass is the recovery period. The recovery period is larger than the backoff period.
+		</para>
+		<para>
+			The Recovery Manager invokes the first pass upon each recovery module, applies the backoff period timeout, invokes the second pass upon each recovery module and finally applies the recovery period timeout before restarting the first pass again.
+		</para>
+		<para>
+			The recovery modules are loaded via the following recovery extension property:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;number&gt;=&lt;RecoveryClass&gt;
+</screen>
+		<para>
+			The backoff period and recovery period are set using the following properties:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod	(default 10 secs)
+com.arjuna.ats.arjuna.recovery.periodicRecovery		(default 120 secs)
+</screen>
+		<para>
+			The following java classes are used to implement the Recovery Manager:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					package <package>com.arjuna.ats.arjuna.recovery</package>:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							RecoveryManager: The daemon process that starts up by instantiating an instance of the RecoveryManagerImple class.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecoveryEnvironment: Properties used by the recovery manager.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecoveryConfiguration: Specifies the name of the Recovery Manager property file. (for instance, RecoveryManager-properties.xml)
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					package <package>com.arjuna.ats.internal.ts.arjuna.recovery</package>:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							RecoveryManagerImple: Creates and starts instances of the RecActivatorLoader, the PeriodicRecovery thread and the ExpiryEntryMonitor thread.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecActivatorLoader: Dynamically loads in the RecoveryActivator specified in the Recovery Manager property file. Each RecoveryActicator is specified as a recovery extension in the properties file.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							PeriodicRecovery: Thread which loads each recovery module, then calls the first pass method for each module, applies the backoff period timeout, calls the second pass method for each module and applies the recovery period timeout.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							RecoveryClassLoader: Dynamically loads in the recovery modules specified in the Recovery Manager property file. Each module is specified as a recovery extension in the properties file (for instance, com.arjuna.ats.arjuna.recovery.recoveryExtension1= com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule).
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				By default, the recovery manager listens on the first available port on a given machine. If you wish to control the port number that it uses, you can specify this using the com.arjuna.ats.arjuna.recovery.recoveryPort attribute.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-Embedding_the_Recovery_Manager">
+			<title>Embedding the Recovery Manager</title>
+			<para>
+				In some situations it may be required to embed the RecoveryManager in the same process as the transaction service. In this case you can create an instance of the RecoveryManager through the manager method on com.arjuna.ats.arjuna.recovery.RecoveryManager. A RecoveryManager can be created in one of two modes, selected via the parameter to the manager method:
+			</para>
+		</formalpara>
+		<orderedlist>
+			<listitem>
+				<para>
+					INDIRECT_MANAGEMENT: the manager runs periodically but can also be instructed to run when desired via the scan operation or through the RecoveryDriver class to be described below.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DIRECT_MANAGEMENT: the manager does not run periodically and must be driven directly via the scan operation or RecoveryDriver.
+				</para>
+			</listitem>
+		</orderedlist>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-Managing_recovery_directly">
+			<title>Managing recovery directly</title>
+			<para>
+				As already mentioned, recovery typically happens at periodic intervals. If you require to drive recovery directly, then there are two options, depending upon how the RecoveryManager has been created.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-Seperate_Recovery_Manager">
+			<title>Seperate Recovery Manager</title>
+			<para>
+				You can either use the com.arjuna.ats.arjuna.tools.RecoveryMonitor program to send a message to the Recovery Manager instructing it to perform recovery, or you can create an instance of the com.arjuna.ats.arjuna.recovery.RecoveryDriver class to do likewise. There are two types of recovery scan available:
+			</para>
+		</formalpara>
+		<orderedlist>
+			<listitem>
+				<para>
+					ASYNC_SCAN: here a message is sent to the RecoveryManager to instruct it to perform recovery, but the response returns before recovery has completed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					SYNC: here a message is sent to the RecoveryManager to instruct it to perform recovery, and the response occurs only when recovery has completed.
+				</para>
+			</listitem>
+		</orderedlist>
+		<formalpara id="form-Transactions_Failure_Recovery_Guide-Recovery_Manager-In_process_Recovery_Manager">
+			<title>In process Recovery Manager</title>
+			<para>
+				You can invoke the scan operation on the RecoveryManager. This operation returns only when recovery has completed. However, if you wish to have an asynchronous interaction pattern, then the RecoveryScan interface is provided:
+			</para>
+		</formalpara>
+<screen>
+public interface RecoveryScan
+{
+	public void completed ();
+}
+</screen>
+		<para>
+			An instance of an object supporting this interface can be passed to the scan operation and its completed method will be called when recovery finishes. The scan operation returns immediately, however.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Recovery_Modules">
+		<title>Recovery Modules</title>
+		<para>
+			As stated before each recovery module is used to recover a different type of transaction/resource, but each recovery module must implement the following RecoveryModule interface, which defines two methods: <methodname>periodicWorkFirstPass</methodname> and <methodname>periodicWorkSecondPass</methodname> invoked by the Recovery Manager.
+		</para>
+<screen>
+public interface RecoveryModule
+{
+	/**
+	* Called by the RecoveryManager at start up, and then
+	* PERIODIC_RECOVERY_PERIOD seconds after the completion, for all   
+	* RecoveryModules of the second pass
+	*/
+	public void periodicWorkFirstPass ();
+	
+	/**
+	* Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds
+	* after the completion of the first pass
+	*/
+	public void periodicWorkSecondPass ();
+}
+</screen>
+	<formalpara>
+		<title>JBossTS Recovery Module Classes</title>
+		<para>
+			JBossTS provides a set of recovery modules that are responsible to manage recovery according to the nature of the participant and its position in a transactional tree. The provided classes (that all implements the <interfacename>RecoveryModule</interfacename> interface) are:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</title>
+				<para>
+					Recovers AtomicAction transactions. 
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</title>
+				<para>
+					Recovers Transactional Objects for Java.
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule</title>
+				<para>
+					Recovers JTS Transactions. This is a generic class from which TopLevel and Server transaction recovery modules inherit, respectively 
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule</title>
+				<para>
+					Recovers JTS Toplevel Transactions.
+				</para>
+			</formalpara>
+		</listitem>
+		<listitem>
+			<formalpara>
+				<title>com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule</title>
+				<para>
+					Recovers JTS Server Transactions.
+				</para>
+			</formalpara>
+		</listitem>
+	</itemizedlist>
+	<para>
+		To illustrate the behavior of a recovery module, the following pseudo code describes the basic algorithm used for Atomic Action transactions and Transactional Objects for java.
+	</para>
+	<formalpara>
+		<title>AtomicAction pseudo code</title>
+		<para>
+			First Pass:
+		</para>
+	</formalpara>
+<screen>
+&lt; create a transaction vector for transaction Uids. &gt;
+&lt; read in all transactions for a transaction type AtomicAction. &gt;
+while &lt; there are transactions in the vector of transactions. &gt;
+do
+	&lt; add the transaction to the vector of transactions. &gt;
+end while.	
+</screen>
+	<para>
+		Second Pass:
+	</para>
+<screen>
+while &lt; there are transactions in the transaction vector &gt;
+do
+	if &lt; the intention list for the transaction still exists &gt;
+	then
+		&lt; create new transaction cached item &gt;
+		&lt; obtain the status of the transaction &gt;
+					
+		if 	&lt; the transaction is not in progress &gt;
+		then
+			&lt; replay phase two of the commit protocol &gt;
+		endif.
+	endif.
+end while.
+</screen>
+	<formalpara>
+		<title>Transactional Object pseudo code</title>
+		<para>First Pass</para>
+	</formalpara>
+<screen>
+&lt; Create a hash table for uncommitted transactional objects. &gt;
+&lt; Read in all transactional objects within the object store. &gt;
+while &lt; there are transactional objects &gt;
+do
+	if 	&lt; the transactional object has an Uncommited status in the object store &gt;
+	then
+		&lt; add the transactional Object o the hash table for uncommitted transactional objects&gt;
+	end if.
+end while.
+</screen>
+	<para>
+		Second Pass:
+	</para>
+<screen>
+while &lt; there are transactions in the hash table for uncommitted transactional objects &gt;
+do
+	if &lt; the transaction is still in the Uncommitted state &gt;
+	then
+		if &lt; the transaction is not in the Transaction Cache &gt;
+		then
+			&lt; check the status of the transaction with the original application process &gt;
+			if &lt; the status is Rolled Back or the application process is inactive &gt;
+				&lt; rollback the transaction by removing the Uncommitted status from the Object Store &gt;
+			endif.
+		endif.
+	endif.
+end while.
+</screen>
+	<formalpara>
+		<title>A Recovery Module for XA Resources</title>
+		<para>
+			To manage recovery, we have seen in the previous chapter that the Recovery Manager triggers a recovery process by calling a set of recovery modules that implements the two methods defined by the <interfacename>RecoveryModule</interfacename> interface. 
+		</para>
+	</formalpara>
+	<para>
+		To enable recovery of participants controlled via the <interfacename>XA</interfacename> interface, a specific recovery module named XARecoveryModule is provided. The XARecoveryModule, defined in the packages <package>com.arjuna.ats.internal.jta.recovery.arjunacore</package> and <package>com.arjuna.ats.internal.jta.recovery.jts</package>, handles recovery of <interfacename>XA</interfacename> resources (for example, databases) used in JTA.
+	</para>
+	<note>
+		<para>
+			JBossTS supports two JTA implementations: a purely local version (no distributed transactions) and a version layered on the JTS. Recovery for the former is straightforward. In the following discussion we shall implicitly consider on the JTS implementation.
+		</para>
+	</note>
+	<para>
+		Its behavior consists of two aspects: <emphasis>transaction-initiated</emphasis> and <emphasis>resource-initiated</emphasis> recovery. Transaction-initiated recovery is possible where the particular transaction branch had progressed far enough for a JTA Resource Record to be written in the ObjectStore, as illustrated in Figure 2.
+	</para>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/ObjectStore.png" format="PNG" />
+		</imageobject>
+		<caption> JTA/JDBC information stored in the ObjectStore</caption>
+	</mediaobject>
+		<para>
+			A JTA Resource record contains the information needed to link the transaction, as known to the rest of JBossTS, to the database. Resource-initiated recovery is necessary for branches where a failure occurred after the database had made a persistent record of the transaction, but before the JTA ResourceRecord was persisted.  Resource-initiated recovery is also necessary for datasources for which it is not possible to hold information in the JTA Resource record that allows the recreation in the RecoveryManager of the XAConnection/XAResource that was used in the original application.
+		</para>
+		<note>
+			<para>
+				When running XA recovery it is necessary to tell JBossTS which types of Xid it can recover. Each Xid that JBossTS creates has a unique node identifier encoded within it and JBossTS will only recover transactions and states that match a specified node identifier. The node identifier to use should be provided to JBossTS via a property that starts with the name <property>com.arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A value of ‘*’ will force JBossTS to recover (and possibly rollback) all transactions irrespective of their node identifier and should be used with caution. The contents of <property>com.arjuna.ats.jta.xaRecoveryNode</property> should be alphanumeric and match the values of <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property>.
+			</para>
+		</note>
+		<para>
+			Transaction-initiated recovery is automatic. The XARecoveryModule finds the JTA Resource Record that need recovery, then uses the normal recovery mechanisms to find the status of the transaction it was involved in (i.e., it calls replay_completion on the RecoveryCoordinator for the transaction branch), (re)creates the appropriate XAResource and issues commit or rollback on it as appropriate. The XAResource creation will use the same information, database name, username, password etc., as the original application.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Recovery.png" format="PNG" />
+			</imageobject>
+			<caption>Transaction-Initiated Recovery and XA Recovery</caption>
+		</mediaobject>
+		<para>
+			Resource-initiated recovery has to be specifically configured, by supplying the Recovery Manager with the appropriate information for it to interrogate all the databases (XADataSources) that have been accessed by any JBossTS application. The access to each XADataSource is handled by a class that implements the <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</interfacename> interface, as illustrated in Figure 4. Instances of classes that implements the XAResourceRecovery interface are dynamically loaded, as controlled by properties with names beginning <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property>.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Resource-Initiated_Recovery.png" format="PNG" />
+			</imageobject>
+			<caption>Resource-initiated recovery and XA Recovery</caption>
+		</mediaobject>
+		<note>
+			<para>
+				JBossTS 3.3 <interfacename>XAConnectionRecovery</interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. Although the old interface still exists at the moment, users are encouraged to migrate to the new interface.
+			</para>
+		</note>
+		<para>
+			The XARecoveryModule will use the XAResourceRecovery implementation to get a XAResource to the target datasource. On each invocation of periodicWorkSecondPass, the recovery module will issue an XAResource.recover request – this will (as described in the XA specification) return a list of the transaction identifiers (Xid’s) that are known to the datasource and are in an indeterminate (in-doubt) state. The list of these in-doubt Xid’s received on successive passes (i.e. periodicWorkSecondPass-es) is compared. Any Xid that appears in both lists, and for which no JTA ResourceRecord was found by the intervening transaction-initiated recovery is assumed to belong to a transaction that was involved in a crash before any JTA ResourceRecord was written, and a rollback is issued for that transaction on the XAResource.
+		</para>
+		<para>
+			This double-scan mechanism is used because it is possible the Xid was obtained from the datasource just as the original application process was about to create the corresponding JTA_ResourceRecord. The interval between the scans should allow time for the record to be written unless the application crashes (and if it does, rollback is the right answer).
+		</para>
+		<para>
+			An <classname>XAResourceRecovery</classname> implementation class can be written to contain all the information needed to perform recovery to some datasource. Alternatively, a single class can handle multiple datasources. The constructor of the implementation class must have an empty parameter list (because it is loaded dynamically), but the interface includes an initialise method which passes in further information as a string. The content of the string is taken from the property value that provides the class name: everything after the first semi-colon is passed as the value of the string. The use made of this string is determined by the <classname>XAResourceRecovery</classname> implementation class.
+		</para>
+		<para>
+			For further details on the way to implement a class that implements the interface <interfacename>XAResourceRecovery</interfacename>, read the JDBC chapter of the JTA Programming Guide. An implementation class is provided that supports resource-initiated recovery for any XADataSource. This class could be used as a template to build your own implementation class. 
+		</para>
+		<formalpara>
+			<title>Writing a Recovery Module</title>
+			<para>In order to recover from failure, we have seen that the Recovery Manager contacts recovery modules by invoking periodically the methods <methodname>periodicWorkFirstPass</methodname> and <methodname>periodicWorkSecondPass</methodname>. Each Recovery Module is then able to manage recovery according to the type of resources that need to be recovered. The JBoss Transaction product is shipped with a set of recovery modules (TOReceveryModule, XARecoveryModule…), but it is possible for a user to define their own recovery module to fit their application. The following basic example illustrates the steps needed to build such recovery module</para>
+		</formalpara>
+		<formalpara>
+			<title>A basic scenario</title>
+			<para>This basic example does not aim to present a complete process to recover from failure, but mainly to illustrate the way to implement a recovery module. </para>
+		</formalpara>
+		<para>
+			The application used here consists to create an atomic transaction, to register a participant within the created transaction and finally to terminate it either by commit or abort. A set of arguments are provided:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					to decide to commit or abort the transaction,
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					to decide generating a crash during the commitment process.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The code of the main class that control the application is given below
+		</para>
+<screen>
+package com.arjuna.demo.recoverymodule;
+	
+import com.arjuna.ats.arjuna.AtomicAction;
+import com.arjuna.ats.arjuna.coordinator.*;
+	
+public class TestRecoveryModule
+{
+	public static void main(String args[])
+	{
+		try 
+		{
+			AtomicAction tx = new AtomicAction();
+			tx.begin(); // Top level begin
+	
+			// enlist the participant 
+			tx.add(SimpleRecord.create());
+	
+			System.out.println("About to complete the transaction ");
+			for (int i = 0; i &lt; args.length; i++)
+			{
+				if ((args[i].compareTo("-commit") == 0))
+				_commit = true;
+				if ((args[i].compareTo("-rollback") == 0))
+				_commit = false;
+				if ((args[i].compareTo("-crash") == 0))
+				_crash = true;
+			}
+			if (_commit)
+				tx.commit();  // Top level commit
+			else 
+				tx.abort();  // Top level rollback
+			} catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+	protected static boolean _commit = true;
+	protected static boolean _crash = false;
+}
+</screen>
+	<para>
+		The registered participant has the following behavior:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				During the prepare phase, it writes a simple message - <emphasis>I’m prepared</emphasis>- on the disk such The message is written in a well known file.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				During the commit phase, it writes another message - <emphasis>I’m committed</emphasis>- in the same file used during prepare.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If it receives an abort message, it removes from the disk the file used for prepare if any.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If a crash has been decided for the test, then it crashes during the commit phase – the file remains with the message <emphasis>I’m prepared</emphasis>.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		The main portion of the code illustrating such behavior is described hereafter.
+	</para>
+	<note>
+		<para>
+			The location of the file given in variable filename can be changed
+		</para>
+	</note>
+<screen>
+package com.arjuna.demo.recoverymodule;
+	
+import com.arjuna.ats.arjuna.coordinator.*;
+import java.io.File;
+	
+public class SimpleRecord extends AbstractRecord {
+	public String filename = "c:/tmp/RecordState";
+	public SimpleRecord() {
+		System.out.println("Creating new resource");
+	}
+	
+	public static AbstractRecord create()
+	{
+		return new SimpleRecord() ;
+	}
+	
+	public int topLevelAbort()
+	{
+		try {
+			File fd = new File(filename);
+			if (fd.exists()){
+				if (fd.delete())
+					System.out.println("File Deleted");
+			}
+	}
+	catch(Exception ex){…}
+		return TwoPhaseOutcome.FINISH_OK;
+	}
+	
+	public int topLevelCommit()
+	{
+		if (TestRecoveryModule._crash)
+			System.exit(0);
+		try  {
+			java.io.FileOutputStream file = new    
+				java.io.FileOutputStream(filename);
+			java.io.PrintStream pfile = new java.io.PrintStream(file);
+			pfile.println("I'm Committed");
+			file.close();
+		}
+		catch (java.io.IOException ex) {...}
+		return TwoPhaseOutcome.FINISH_OK ;
+	}
+	
+	public int topLevelPrepare()
+	{
+		try {
+			java.io.FileOutputStream file = new
+				java.io.FileOutputStream(filename);
+			java.io.PrintStream pfile = new java.io.PrintStream(file);
+			pfile.println("I'm prepared");
+			file.close();
+		}
+		catch (java.io.IOException ex)  {...}
+		return  TwoPhaseOutcome.PREPARE_OK ;
+	}
+	…
+}
+</screen>
+	<para>
+		The role of the Recovery Module in such application consists to read the content of the file used to store the status of the participant, to determine that status and print a message indicating if a recovery action is needed or not. 
+	</para>
+<screen>
+package com.arjuna.demo.recoverymodule;
+	
+import com.arjuna.ats.arjuna.recovery.RecoveryModule;
+	
+public class SimpleRecoveryModule implements RecoveryModule
+{
+	public String filename = "c:/tmp/RecordState";
+	public SimpleRecoveryModule ()
+	{
+		System.out.println("The SimpleRecoveryModule is loaded");
+	};
+	
+	public void periodicWorkFirstPass ()
+	{
+		try
+		{
+			java.io.FileInputStream file = new 
+				java.io.FileInputStream(filename);
+			java.io.InputStreamReader input = new 
+				java.io.InputStreamReader(file);
+			java.io.BufferedReader reader = new java.io.BufferedReader(input);
+			String stringState = reader.readLine();
+			if (stringState.compareTo("I'm prepared") == 0)
+				System.out.println("The transaction is in the prepared state");
+			file.close();
+		}
+		catch (java.io.IOException ex)
+		{ System.out.println("Nothing found on the Disk"); }
+	}
+	
+	public void periodicWorkSecondPass ()
+	{
+		try
+		{
+			java.io.FileInputStream file = new 
+				java.io.FileInputStream(filename);
+			java.io.InputStreamReader input = new 
+				java.io.InputStreamReader(file);
+			java.io.BufferedReader reader = new java.io.BufferedReader(input);
+			String stringState = reader.readLine();
+			if (stringState.compareTo("I'm prepared") == 0)
+			{
+				System.out.println("The record is still in the prepared state – Recovery is needed");
+			}
+			else if (stringState.compareTo("I'm Committed") == 0)
+			{
+				System.out.println("The transaction has completed and committed");     
+			}
+			file.close();
+		}
+		catch (java.io.IOException ex)
+		{ System.out.println("Nothing found on the Disk - Either there was 
+			no transaction or it as been rolled back"); }
+	}
+}
+</screen>
+	<para>
+		The recovery module should now be deployed in order to be called by the Recovery Manager. To do so, we just need to add an entry in the <filename>RecoveryManager-properties.xml</filename> by adding a new property as follow: 
+	</para>
+<screen>
+	&lt;property
+		 name="com.arjuna.ats.arjuna.recovery.recoveryExtension&lt;i&gt;"
+        value="com.arjuna.demo.recoverymodule.SimpleRecoveryModule"/&gt;
+</screen>
+	<para>
+		Where &lt;i&gt; represent the new occurrence number that follows the last that already exists in the file. Once started, the Recovery Manager will automatically load the added Recovery module.
+	</para>
+	<note>
+		<para>
+			The source of the code can be retrieved under the trailmap directory of the JBossTS installation. 
+		</para>
+	</note>
+	<formalpara>
+		<title>Another scenario</title>
+		<para>
+			As mentioned, the basic application presented above does not present the complete process to recover from failure, but it was just presented to describe how the build a recovery module. In case of the OTS protocol, let’s consider how a recovery module that manages recovery of OTS resources can be configured. 
+		</para>
+	</formalpara>
+		<para>
+			To manage recovery in case of failure, the OTS specification has defined a recovery protocol. Transaction’s participants in a doubt status could use the RecoveryCoordinator to determine the status of the transaction. According to that transaction status, those participants can take appropriate decision either by roll backing or committing. Asking the RecoveryCoordinator object to determine the status consists to invoke the replay_completion operation on the RecoveryCoordinator.
+		</para>
+		<para>
+			For each OTS Resource in a doubt status, it is well known which RecoveyCoordinator to invoke to determine the status of the transaction in which the Resource is involved – It’s the RecoveryCoordinator returned during the Resource registration process. Retrieving such RecoveryCoordinator per resource means that it has been stored in addition to other information describing the resource. 
+		</para>
+		<para>
+			A recovery module dedicated to recover OTS Resources could have the following behavior. When requested by the recovery Manager on the first pass it retrieves from the disk the list of resources that are in the doubt status. During the second pass, if the resources that were retrieved in the first pass still remain in the disk then they are considered as candidates for recovery. Therefore, the Recovery Module retrieves for each candidate its associated RecoveryCoordinator and invokes the replay_completion operation that the status of the transaction. According to the returned status, an appropriate action would be taken (for instance, rollback the resource is the status is aborted or inactive).
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-TransactionStatusConnectionManager">
+		<title>TransactionStatusConnectionManager</title>
+		<para>
+			The TransactionStatusConnectionManager object is used by the recovery modules to retrieve the status of transactions and acts like a proxy for TransactionStatusManager objects. It maintains a table of TransactionStatusConnector obects each of which connects to a TransactionStatusManager object in an Application Process.
+		</para>
+		<para>
+			The transactions status is retrieved using the getTransactionStatus methods which take a transaction Uid and if available a transaction type as parameters. The process Uid field in the transactions Uid parameter is used to lookup the target TransactionStatusManagerItem host/port pair in the Object Store. The host/port pair are used to make a TCP connection to the target TransactionStatusManager object by a TransactionStatusConnector object. The TransactionStatusConnector passes the transaction Uid/transaction type to the TransactionStatusManager in order to retrieve the transactions status.
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Expired_Scanner_Thread">
+		<title>Expired Scanner Thread</title>
+		<para>
+			When the Recovery Manager initialises an expiry scanner thread ExpiryEntryMonitor is created which is used to remove long dead items from the ObjectStore. A number of scanner modules are dynamically loaded which remove long dead items for a particular type.
+		</para>
+		<para>
+			Scanner modules are loaded at initialisation and are specified as properties beginning with
+		</para>
+<screen>com.arjuna.ats.arjuna.recovery.expiryScanner&lt;Scanner Name&gt;=&lt;Scanner Class&gt;
+</screen>
+		<para>
+			All the scanner modules are called periodically to scan for dead items by the ExpiryEntryMonitor thread. This period is set with the property:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.expiryScanInterval
+</screen>
+		<para>
+			All scanners inherit the same behaviour from the java interface <interfacename>ExpiryScanner</interfacename> as illustrated in diagram below:
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/ExpiryScanner.png" format="PNG" />
+			</imageobject>
+		</mediaobject>
+		<para>
+			A scan method is provided by this interface and implemented by all scanner modules, this is the method that gets called by the scanner thread.
+		</para>
+		<para>
+			The ExpiredTransactionStatusManagerScanner removes long dead TransactionStatusManagerItems from the Object Store. These items will remain in the Object Store for a period of time before they are deleted. This time is set by the property:
+		</para>
+<screen>
+	com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime
+</screen>
+		<para>
+			(default 12 hours)
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Application_Process">
+		<title>Application Process</title>
+			<para>
+				This represents the user transactional program. A Local transaction (hash) table, maintained within the running application process keeps trace of the current status of all transactions created by that  application process, The Recovery Manager needs access to the transaction tables so that it can determine whether a transaction is still in progress, if so then recovery does not happen.
+			</para>
+			<para>
+				The transaction tables are accessed via the TransactionStatusManager object. On application program initialisation the host/port pair that represents the TransactionStatusManager is written to the Object Store in '../Recovery/TransactionStatusManager’ part of the Object Store file hierarchy and identified by the process Uid of the application process.
+			</para>
+			<para>
+				The Recovery Manager uses the TransactionStatusConnectionManager object to retrieve the status of a transaction and a TransactionStatusConnector object is used to make a TCP connection to the TransactionStatusManager.
+			</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-TransactionStatusManager">
+		<title>TransactionStatusManager</title>
+		<para>
+			This object acts as an interface for the Recovery Manager to obtain the status of transactions from running HPTS application processes. One TransactionStatusManager is created per application process by the class com.arjuna.ats.arjuna.coordinator.InitAction. Currently a tcp connection is used for communication between the RecoveryManager and TransactionStatusManager. Any free port is used by the TransactionStatusManager by default, however the port can be fixed with the property:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort
+</screen>
+		<para>
+			On creation the TransactionStatusManager obtains a port which it stores with the host in the Object Store as a TransactionStatusManagerItem. A Listener thread is started which waits for a connection request from a TransactionStatusConnector. When a connection is established a Connection thread is created which runs a Service (AtomicActionStatusService)  which accepts a transaction Uid and a transaction type (if available) from a TransactionStatusConnector, the transaction status is obtained from the local thransaction table and returned back to the TransactionStatusConnector.
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-Architecture_of_the_Recovery_Manager-Object_Store">
+		<title>Object Store</title>
+		<para>
+			All objects are stored in a file path which is equivalent to their class inheritance. Thus AtomicAction transactions are stored in file path ../StateManager/BasicAction/AtomicAction.
+		</para>
+		<para>
+			All objects are identified by a unique identifier Uid. One of the values of which is a process id in which the object was created. The Recovery Manager uses the process id to locate transaction status manager items when contacting the originator application process for the transaction status.
+		</para>
+	</section>
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_Failure_Recovery_Guide-Product_Name_and_Version">
+	<title>JBoss Transactions Failure Recovery Guide CP03</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>4</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is the Enterprise Application Platform edition of the JBoss Transactions Failure Recovery Guide</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/How_JBossTS_managers_the_OTS_Recovery_Protocol.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,346 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol">
+	<title>How JBossTS manages the OTS Recovery Protocol</title>
+	<para>
+	</para>
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-Recovery_Protocol_in_OTS-Overview">
+		<title>Recovery Protocol in OTS-Overview</title>
+		<para>
+			To manage recovery in case of failure, the OTS specification has defined a recovery protocol. Transaction’s participants in a doubt status could use the RecoveryCoordinator to determine the status of the transaction. According to that transaction status, those participants can take appropriate decision either by roll backing or committing.
+		</para>
+		<para>
+			A reference to a RecoveryCoordinator is returned as a result of successfully calling register_resource on the transaction Coordinator. This object, which is implicitly associated with a single Resource, can be used to drive the Resource through recovery procedures in the event of a failure occurring during the transaction.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/RecoveryCoordinator.png" format="PNG"/>
+			</imageobject>
+			<caption>Resource and RecoveryCoordinator relationship.</caption>
+		</mediaobject>
+	</section>
+	
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-RecoveryCoordinator_in_JBossTS">
+		<title>RecoveryCoordinator in JBossTS</title>
+		<para>
+			On each resource registration a RecoveryCoordinator Object is expected to be created and returned to the application that invoked the register_resource operation. Behind each CORBA object there should be an object implementation or Servant object, in POA terms, which performs operations made on a RecoveryCoordinator object. Rather than to create a RecoveryCoordinator object with its associated servant on each register_resource, JBossTS enhances performance by avoiding the creation of servants but it relies on a default RecoveryCoordinator object with it’s associated default servant to manage all replay_completion invocations. 
+		</para>
+		<para>
+			In the next sections we first give an overview of the Portable Object Adapter architecture, then we describe how this architecture is used to provide RecoveryCoordinator creation with optimization as explained above. 
+		</para>
+		<formalpara>
+			<title>Understanding POA</title>
+			<para>
+				Basically, the Portable Object Adapter, or POA is an object that intercepts a client request and identifies the object that satisfies the client request. The Object is then invoked and the response is returned to the client. 
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/POA.png" format="PNG"/>
+			</imageobject>
+			<caption>Overview of the POA.</caption>
+		</mediaobject>
+		<para>
+			The object that performs the client request is referred as a servant, which provides the implementation of the CORBA object requested by the client. A servant provides the implementation for one or more CORBA object references. To retreive a servant, each POA maintains an Active Object Map that maps all objects that have been activated in the POA to a servant. For each incoming request, the POA looks up the object reference in the Active Object Map and tries to find the responsible servant. If none is found, the request is either delegated to a default servant, or a servant manager is invoked to activate or locate an appropriate servant.  In addition to the name space for the objects, which are identified by Object Ids, a POA also provides a name space for POAs. A POA is created as a child of an existing POA, which forms a hierarchy starting with the root POA.
+		</para>
+		<para>
+			Each POA has a set of policies that define its characteristics. When creating a new POA, the default set of policies can be used or different values can be assigned that suit the application requirements. The POA specification defines:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>Thread policy:</emphasis> Specifies the threading model to be used by the POA. Possible values are:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							ORB_CTRL_MODEL (default): The POA is responsible for assigning requests to threads.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							SINGLE_THREAD_MODEL: The POA processes requests sequentially 
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>Lifespan policy:</emphasis> Specifies the lifespan of the objects implemented in the POA. The lifespan policy can have the following values: 
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							TRANSIENT (Default) Objects implemented in the POA cannot outlive the  process in which they are first created. Once the POA is deactivated, an OBJECT_NOT_EXIST exception occurs when attempting to use any object references generated by the POA.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							PERSISTENT Objects implemented in the POA can outlive the process in which they are first created.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Object ID Uniqueness policy: Allows a single servant to be shared by many abstract objects. The Object ID Uniqueness policy can have the following values: 
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							UNIQUE_ID (Default): Activated servants support only one Object ID. 
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							MULTIPLE_ID: Activated servants can have one or more Object IDs. The Object ID must be determined within the method being invoked at run time.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					ID Assignment policy: Specifies whether object IDs are generated by server applications or by the POA. The ID Assignment policy can have the following values:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							USER_ID is for persistent objects, and 
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							SYSTEM_ID is for transient objects.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Servant Retention policy: Specifies whether the POA retains active servants in the Active Object Map. The Servant Retention policy can have the following values: 
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							RETAIN (Default) The POA tracks object activations in the Active Object Map. RETAIN is usually used with ServantActivators or explicit activation methods on POA.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							NON_RETAIN The POA does not retain active servants in the Active Object Map. NON_RETAIN is typically used with ServantLocators.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Request Processing policy: Specifies how requests are processed by the POA.
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							USE_ACTIVE_OBJECT_MAP (Default): If the Object ID is not listed in the Active Object Map, an OBJECT_NOT _EXIST exception is returned. The POA must also use the RETAIN policy with this value.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							USE_DEFAULT_SERVANT: If the Object ID is not listed in the Active Object Map or the NON_RETAIN policy is set, the request is dispatched to the default servant. If no default servant has been registered, an OBJ_ADAPTER exception is returned. The POA must also use the MULTIPLE_ID policy with this value.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							USE_SERVANT_MANAGER: If the Object ID is not listed in the Active Object Map or the NON_RETAIN policy is set, the servant manager is used to obtain a servant.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Implicit Activation policy: Specifies whether the POA supports implicit activation of servants. The Implicit Activation policy can have the following values:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							IMPLICIT_ACTIVATION: The POA supports implicit activation of servants.  Servants can be activated by converting them to an object reference with <methodname>org.omg.PortableServer.POA.servant_to_reference()</methodname> or by invoking <methodname>_this()</methodname> on the servant. The POA must also use the SYSTEM_ID and RETAIN policies with this value.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							NO_IMPLICIT_ACTIVATION (Default): The POA does not support implicit activation of servants.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+		</itemizedlist>
+		<para>
+			It appears that to redirect replay_completion invocations to a default servant we need  to create a POA with the Request Processing policy assigned with the value set to USE_DEFAULT_SERVANT. However to reach that default Servant we should first reach the POA that forward the request to the default servant. Indeed, the ORB uses a set of information to retrieve a POA; these information are contained in the object reference used by the client. Among these information there are the IP address and the port number where resides the server and also the POA name. JBossTS provides one servant per machine to perform replay_completion invocations. This servant is located in the RecoveryManager process. The RecoveryManager process is a separate process from the client and server applications. The next section explains how the indirection to a default Servant located on a separate process is provided for ORBIX and for JacORB. 
+		</para>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-The_default_RecoveryCoordinator_in_Orbix">
+		<title>The default RecoveryCoordinator in Orbix</title>
+		<para>
+			Within Orbix, objects are located by the Location Deamon. To avoid the overhead of using the location daemon, Orbix provides a mechanism named <emphasis>Direct Persistence</emphasis> allowing generating persistent object references. This mechanism is in fact a proprietary policy named, DIRECT_PERSISTENCE. A POA with policies of PERSISTENT and DIRECT_PERSISTENCE generates IORs that contain a well-known address for the server process. A POA that uses direct persistence must also tell each transport mechanism such as IIOP where in the configuration file it can find the well-known address that it should use. This is done by creating a <code>WellKnownAddressingPolicy</code> object and setting its value to the configuration scope that contains the well-known address. 
+		</para>
+		<para>
+			To specify the address used by the <code>WellKnownAddressingPolicy</code> object, JBossTS uses the Orbix mechanism that allows specifying an ORB/POA names. The following configuration modifications are necessary to define the well-know address of the RecoveryCoordinator performing replay_completion invocation. 
+		</para>
+		<note>
+			<para>
+				Note that this configuration is also necessary to support transaction context propagation and interposition.
+			</para>
+		</note>
+		<para>
+			A new orb name domain called arjuna should be created within the main Orbix 2000 domain being used by the application. It requires the following format:
+		</para>
+<screen>
+arjuna
+{
+	portable_interceptor
+	{
+		orb_plugins = ["local_log_stream", "iiop_profile", "giop", "iiop", "portable_interceptor"];
+	
+		ots_recovery_coordinator
+		{
+			recovery_coordinator:iiop:addr_list = [“&lt;name&gt;:&lt;port&gt;”];
+		};
+			
+		ots_transaction
+		{
+			transaction:iiop:addr_list = [“+&lt;name&gt;:&lt;port&gt;”];
+		};     
+		ots_context
+		{
+			binding:client_binding_list = ["OTS_Context", "OTS_Context+GIOP+SIOP", "GIOP+SIOP", "OTS_Context+GIOP+IIOP", "GIOP+IIOP"];
+			binding:server_binding_list = ["OTS_Context", ""];
+		};
+					
+		ots_interposition
+		{
+			binding:client_binding_list = ["OTS_Interposition", "OTS_Interposition+GIOP+SIOP", "GIOP+SIOP", "OTS_Interposition+GIOP+IIOP", "GIOP+IIOP"];
+			binding:server_binding_list = ["OTS_Interposition", ""];
+		};
+	};
+};
+</screen>
+		<para>
+			The &lt;name&gt; field should be substituted by the name of the machine on which JBossTS is being run. The &lt;port&gt; field should be an unused port on which the JBossTS recovery manager may listen for recovery requests. 
+		</para>
+		<para>
+			Because of the way in which Orbix works with persistent POAs, if you want crash recovery support for your applications you must use one of the  Arjuna ORB names provided (context or interposition) when running your clients and services. When using transaction context propagation only, the<parameter>–ORBname arjuna.portable_interceptor.ots_context</parameter> parameter should be passed to the client and server. When using context propagation and interposition, the <parameter>–ORBname.arjuna.portable_interceptor.ots_interposition</parameter> parameter should be used. For example:
+		</para>
+<screen>
+java mytest –ORBname arjuna.portable_interceptor.ots_context
+</screen>
+		<formalpara>
+			<title>How it works</title>
+			<para>
+				When the Recovery Manager is launched it seeks in the configuration the RecoveryActivator that need be loaded. Once done it invokes the <methodname>startRCservice</methodname> method of each loaded instances. As seen in in the previous chapter (Recovery Manager) the class to load that implements the <interfacename>RecoveryActivator</interfacename> interface  is the class <classname>RecoveryEnablement</classname>. This generic class, located in the package <package>com.arjuna.ats.internal.jts.orbspecific.recovery</package>, hides the nature of the ORB being used by the application. The following figure illustrates the behavior of the <interfacename>RecoveryActivator</interfacename> that leads to the creation of the default servant that performs all replay_invocations requests. 
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Recovery_Manager.png" format="PNG"/>
+			</imageobject>
+			<caption>The Recovery Manager and the creation of the default servant for RecoveryCoordinator.</caption>
+		</mediaobject>
+		<note>
+			<para>
+				There is one recovery Manager Process per machine, then one default servant per machine. Performing all replay_completion invocations means those made on the same machine.
+			</para>
+		</note>
+		<para>
+			When started, the application, using JBossTS in library mode, is launched a child POA is created with the same policies as those defined within the Recovery Manager. This child POA is used to create object references, for RecoveryCoordinator CORBA objects, that need to be returned on register_resource invocations, as illustrated in figure below. The Object reference created has an Object ID that contains the transaction ID in progress and the Process Identifier of the application. 
+		</para>
+		<note>
+			<para>
+				If the Transaction Service is used in the stand-alone mode, the behavior to create object reference to RecoveryCoordinator objects is exactly the same; the process ID used in the Object ID is the Transaction Service process ID
+			</para>
+		</note>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Application_Process.png" format="PNG"/>
+			</imageobject>
+			<caption>Resource registration and returned RecoveryCoordinator Object reference.</caption>
+		</mediaobject>
+		<para>
+			Having the object reference of the RecoveryCoordinator, an application can use it to determine the status of the transaction for which that object reference is created. When a RecoveryCoordinator, according to POA policies is assigned to the POA included in the object reference, the request is forward straight to the default servant defined in the Recovery Manager, as described in the figure below. 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Transaction_Process.png" format="PNG"/>
+			</imageobject>
+			<caption>replay_completion invocation forwarded to the default RecoveryCoordinator .</caption>
+		</mediaobject>
+		<para>
+			The flow described in the figure can be depicted as follow:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					The participant invokes the replay_completion operation on RecoveryCoordinator object using the object reference returned by the Transaction Server.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The request is forwarded to the Recovery Manager process since the Well-known-address policy is used to retrieve. 
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The child POA responsible to locate the servant is retrieved.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					After looking to the Active Object Map, the child POA invokes the default servant to perform the request. Note that the Object ID conveyed by the object reference is not retrieved in the AOP. 
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The servant extracts from the request the Object ID that contains the Transaction ID and the process ID of the Transaction Server process. To determine if the process still alive, the TransactionStatusConnectionManager functionalities are used.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					According to the presence or not of the Transaction Server process and eventually the returned status, the servant returns the status of the transaction asked by the participant.
+				</para>
+			</listitem>
+		</orderedlist>
+	</section>
+	<section id="sect-Transactions_Failure_Recovery_Guide-How_JBossTS_manages_the_OTS_Recovery_Protocol-The_default_RecoveryCoordinator_in_JacOrb">
+		<title>The default RecoveryCoordinator in JacOrb</title>
+		<para>
+			JacORB does not define additional policies to redirect any request on a RecoveryCoordinator object to a default servant located in the Recovery Manager process. However it provides a set of APIs that allows building object references with specific IP address, port number and POA name in order to reach the appropriate default servant.
+		</para>
+		<formalpara>
+			<title>How it works</title>
+			<para>
+				When the Recovery Manager is launched it seeks in the configuration the RecoveryActivator that need be loaded. Once done it invokes the <methodname>startRCservice</methodname> method of each loaded instances. As seen in in the previous chapter (Recovery Manager ) the class to load that implements the <interfacename>RecoveryActivator</interfacename> interface  is the class <classname>RecoveryEnablement</classname>. This generic class, located in the package <package>com.arjuna.ats.internal.jts.orbspecific.recovery</package>, hides the nature of the ORB being used by the application (JacORB). The following figure illustrates the behavior of the <interfacename>RecoveryActivator</interfacename> that leads to the creation of the default servant that performs replay_completion invocations requests. 
+			</para>
+		</formalpara>
+		<para>
+			In addition to the creation of the default servant, an object reference to a <code>RecoveryCoordinator</code> object is created and stored in the ObjectStore. As we will see this object reference will be used to obtain its IP address, port number and POA name and assign them to any <code>RecoveryCoordinator</code> object reference created on register_resource. 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Recover_Manager_Flow.png" format="PNG"/>
+			</imageobject>
+			<caption>replay_completion invocation forwarded to the default RecoveryCoordinator.</caption>
+		</mediaobject>
+		<para>
+			When an application registers a resource with a transaction, a <code>RecoveryCoordinator</code> object reference is expected to be returned. To build that object reference, the Transaction Service uses the RecoveryCoordinator object reference created within the Recovery Manager as a template. The new object reference contains practically the same information to retrieve the default servant (IP address, port number, POA name, etc.), but the Object ID is changed; now, it contains the Transaction ID of the transaction in progress and also the Process ID of the process that is creating the new <code>RecoveryCoordinator</code> object reference, as illustrated below. 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/RecoverCoordinator_Object.png" format="PNG"/>
+			</imageobject>
+			<caption>Resource registration and returned RecoveryCoordinator Object reference build from a reference stored in the ObjectStore.</caption>
+		</mediaobject>
+		<para>
+			Since a <code>RecoveryCoordintaor</code> object reference returned to an application contains all information to retrieve the POA then the default servant located in the Recovery Manager, all replay_completion invocation, per machine, are forwarded to the same default <code>RecoveryCoordinator</code> that is able to retreive the Object ID from the incoming request to extract the transaction identifier and the process identifier needed to determine the status of the requested transaction.
+		</para>
+	</section>
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_Failure_Recovery_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/JBoss_Transactions_Failure_Recovery_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Architecture_of_the_Recovery_Manager.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="How_JBossTS_managers_the_OTS_Recovery_Protocol.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,15 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="Transactions_Failure_Recovery_Guide-Preface">
+	<title>Preface</title>
+	<para>
+	</para>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> 
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include>
+</preface>

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Application_Process.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Application_Process.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Crash_Recovery_Architecture.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Crash_Recovery_Architecture.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/ExpiryScanner.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/ExpiryScanner.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/ObjectStore.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/ObjectStore.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/POA.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/POA.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/RecoverCoordinator_Object.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/RecoverCoordinator_Object.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recover_Manager_Flow.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recover_Manager_Flow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recovery.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recovery.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/RecoveryCoordinator.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/RecoveryCoordinator.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recovery_Manager.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Recovery_Manager.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Resource-initiated_Recovery.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Resource-initiated_Recovery.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Transaction_Process.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/Transaction_Process.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

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

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

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

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

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

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

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

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/ja-JP/Transactions_Failure_Recovery_Guide.po
===================================================================

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

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

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

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

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

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

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

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/Transactions_Failure_Recovery_Guide.pot
===================================================================

Added: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/messages.mo
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Failure_Recovery_Guide/pot/messages.mo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+#Makefile for Transactions_Installation_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,30 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="Transactions_Installation_Guide-Product_Name_and_Version">
+	<title>JBoss Transactions Installation Guide CP03</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>4</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract><para>This book is about installing the JBoss Transactions Arjuna Core</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata format='SVG' fileref="Common_Content/images/title_logo.svg" />
+			</imageobject>
+			<textobject><phrase>Logo</phrase></textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</bookinfo>
+
+
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Installing_ArjunaCore.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,274 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="Transactions_Installation_Guide-Installing_ArjunaCore">
+	<title>Installing AjunaCore</title>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Preparing_your_system">
+		<title>Preparing your system</title>
+		<para>
+			Before installing the <firstterm>ArjunaCore</firstterm> software, we recommend the following administrative steps be taken, assuming a default configuration for ArjunaCore:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Install the distribution into the required location.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					ArjunaCore requires a minimum object store for storing the outcome of transactions in the event of system crashes. The location of this should be specified in the properties file using the <varname>com.arjuna.ats.arjuna.objectstore.objectStoreDir environment variable</varname>, for example, <varname>java –Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=C:\temp foo</varname>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					By default, all object states will be stored within the defaultStore subdirectory of the object store root, for example, /usr/local/Arjuna/TransactionService/ObjectStore/defaultStore. However,  this subdirectory can be changed by setting the <property>com.arjuna.ats.arjuna.objectstore.localOSRoot</property> property variable accordingly.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Operating_System_Services">
+		<title>Operating System Services</title>
+		<para>
+			It is possible to run the recovery manager and transaction server as operating system services.
+		</para>
+		<formalpara>
+			<title>Installing and Uninstalling</title>
+			<para>
+				This section explains how to install and uninstall these operating system services for the two main types of operating system:  Windows and UNIX (Solaris, Linux and HP-UX).
+			</para>
+		</formalpara>
+		<formalpara>
+			<title>Windows</title>
+			<para>
+				There are four scripts provided which will install/uninstall the recovery manager and transaction server services, these files can be found in Services\bin\windows:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Recovery Manager Service
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							<code>InstallRecoveryManagerService-NT.bat</code>: running this script will install the Recovery Manager as a Windows service.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<code>UninstallRecoveryManagerService-NT.bat</code>: running this script will uninstall the Recovery Manager as a Windows service.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+			<listitem>
+				<para>
+					Transaction Server
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							<code>InstallTransactionServerService-NT.bat</code>: running this script will install the Transaction Manager as a Windows service.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<code>UninstallTransactionServerService-NT.bat</code>: running this script will uninstall the Transaction Server as a Windows service.
+						</para>
+					</listitem>
+				</itemizedlist>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Please note that you must either be logged on as an administrator or have administrator privileges to install/uninstall a Windows service.
+		</para>
+		<para>
+			Once you have run an install script you should see the following message:
+		</para>
+<screen>
+	wrapper  | JBoss Transaction Service &lt;service name&gt; installed
+</screen>
+		<para>
+			This indicates that the service has been installed successfully.  The service should also be visible in the services list from the Control Panel (see Figure 1 Services list from the Control Panel) 
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="Win_Services.png" format="PNG"/>
+			</imageobject>
+			<caption>Services list from the Control Panel</caption>
+		</mediaobject>
+		<para>
+			Once you have run an uninstall script you should see the following message:
+		</para>
+<screen>
+	wrapper  | JBoss Transaction Service &lt;service name&gt; removed.
+</screen>
+		<para>
+			This indicates that the service has been uninstalled successfully.
+		</para>
+		<formalpara>
+			<title>Unix</title>
+			<para>
+				To install the services on Unix machines perform the following steps:
+			</para>
+		</formalpara>
+		<orderedlist>
+			<listitem>
+				<para>
+					Make sure that you are logged in as the user <emphasis>root</emphasis>, as the installer needs to create files under the directory /etc.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Change directory to services/installer.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Make sure the environment variable JAVA_HOME is set to the home directory of the JVM you wish the services to be run as.  For example:
+				</para>
+				<para>
+					<code>JAVA_HOME=/opt/java; export JAVA_HOME</code> (for sh)
+				</para>
+				<para>
+					<code>setenv JAVA_HOME /opt/java</code> (for csh)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Run the installer script:
+				</para>
+				<para>
+					<code>./install_services.sh</code>
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			The following is example output from a computer running the Solaris operating system:
+		</para>
+<screen>
+# ./install_services.sh
+
+Adding $JAVA_HOME (/opt/java) to $PATH in
+/opt/arjuna/ats-3.2/services/bin/solaris/recoverymanagerservice.sh
+Adding $JAVA_HOME (/opt/java) to $PATH in
+/opt/arjuna/ats-3.2/services/bin/solaris/transactionserverservice.sh
+Installing shutdown scripts into /etc/rcS.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing shutdown scripts into /etc/rc0.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing shutdown scripts into /etc/rc1.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing shutdown scripts into /etc/rc2.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Installing startup scripts into /etc/rc3.d:
+	S98recoverymanagerservice
+ 	S99transactionserverservice
+</screen>
+		<para>
+			Upon restarting the computer the transaction server and recovery manager service should be started.  To uninstall the services on a Unix machine simply perform the following steps:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					Make sure that you are logged in as the user <emphasis>root</emphasis>, as the installer needs to remove files under the directory /etc.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Change directory to services/installer.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Run the installer script with the <command>-u</command> argument:
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			The following is example output from a computer running the Solaris operating system:
+		</para>
+<screen>
+# ./install_services.sh
+
+Removing startup scripts from /etc/rc3.d:
+	S98recoverymanagerservice
+	S99transactionserverservice
+Removing shutdown scripts from /etc/rcS.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Removing shutdown scripts from /etc/rc0.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Removing shutdown scripts from /etc/rc1.d:
+	K01recoverymanagerservice
+	K00transactionserverservice
+Removing shutdown scripts from /etc/rc2.d:
+	K01recoverymanagerservice
+	K00transactionserverservice 
+</screen>
+		<formalpara>
+			<title>Logging</title>
+			<para>
+				The recovery manager and the transaction server services produce log files which are located in the services/logs/ directory.  There are two log files per service one called <filename>&lt;service name&gt;-service.log</filename> (for example, <filename>recovery-manager-service.log</filename>), which contains information regarding the state of the service (e.g. started, stopped, restarted etc). The other is called <filename>&lt;services-name&gt;.log</filename> (for example, <filename>recovery-manager.log</filename>) this contains information logged from the actual service (for example, application level logging).
+			</para>
+		</formalpara>
+		<para>
+			To configure what information is logged in these files please edit the appropriate LOG4J configuration files which are located in services/config/.
+		</para>
+	</section>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-ObjectStore_management">
+		<title>ObjectStore management</title>
+		<para>
+			Within the transaction service installation, the object store is updated regularly whenever transactions are created, or when Transactional Objects for Java is used. In a failure free environment, the only object states which should reside within the object store are those representing objects created with the Transactional Objects for Java API. However, if failures occur, transaction logs may remain in the object store until crash recovery facilities have resolved the transactions they represent. As such it is very important that the contents of the object store are not deleted without due care and attention, as this will make it impossible to resolve in doubt transactions. In addition, if multiple users share the same object store it is important that they realise this and do not simply delete the contents of the object store assuming it is an exclusive resource.
+		</para>
+	</section>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Additional_jar_requirements">
+		<title>Additional jar requirements</title>
+		<para>
+			In order to fully utilize all of the facilities available within ArjunaCore, it will be necessary to add all of the jar files contained in the lib directory of the distribution.
+		</para>
+	</section>
+	<section id="Transactions_Installation_Guide-Installing_ArjunaCore-Setting_properties">
+		<title>Setting properties</title>
+		<para>
+			ArjunaCore has been designed to be highly configurable at runtime through the use of various property attributes, which will be described in subsequent sections. Although these attributes can be provided at runtime on the command line, it is possible (and may be more convenient) to specify them through a single properties file. At runtime ArjunaCore looks for the file <filename>jbossjts-properties.xml</filename> in the following order:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					the current working directory. For instance, where the application was executed from.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the user’s home directory.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the etc directory of the ArjunaCore installation; this must be placed in your CLASSPATH.
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			If found, all entries within this file will be added to the system properties. Obviously non-ArjunaCore specific properties can also be specified in this file. For example:
+		</para>
+<screen>
+&lt;property
+	name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/&gt;
+&lt;property
+	name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="c:\temp\ObjectStore"/&gt;
+</screen>
+		<para>
+			The name of the properties file can be overridden at runtime by specifying a new file using the <varname>com.arjuna.ats.arjuna.common.propertiesFile</varname> attribute variable.
+		</para>
+	</section>
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,6 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_Installation_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/JBoss_Transactions_Installation_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Installing_ArjunaCore.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="Transactions_Installation_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include>
+</preface>

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/Win_Services.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/Win_Services.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Installation_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+#Makefile for Transactions_JTA_Administration_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Administration_of_ArjunaTA.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,454 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA">
+	<title>Administration of ArjunaTA</title>
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Introduction">
+		<title>Introduction</title>
+		<para>
+			Apart from ensuring that the run-time system is executing normally, there is little continuous administration needed for the <firstterm>ArjunaTA</firstterm> software. There are a few points however, that should be made:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The present implementation of the ArjunaTA system provides no security or protection for data. The objects stored in the ArjunaTA object store are (typically) owned by the user who ran the application that created them. The Object Store and Object Manager facilities make no attempt to enforce even the limited form of protection that Unix/Windows provides. There is no checking of user or group IDs on access to objects for either reading or writing.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Persistent objects created in the Object Store never go away unless the <methodname>StateManager.destroy</methodname> method is invoked on the object or some application program explicitly deletes them. This means that the Object Store gradually accumulates garbage (especially during application development and testing phases). At present we have no automated garbage collection facility. Further, we have not addressed the problem of dangling references. That is, a persistent object, A, may have stored a Uid for another persistent object, B, in its passive representation on disk. There is nothing to prevent an application from deleting B even though A still contains a reference to it. When A is next activated and attempts to access B, a run-time error will occur.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					There is presently no support for version control of objects or database reconfiguration in the event of class structure changes. This is a complex research area that we have not addressed. At present, if you change the definition of a class of persistent objects, you are entirely responsible for ensuring that existing instances of the object in the Object Store are converted to the new representation. The ArjunaTA software can neither detect nor correct references to old object state by new operation versions or vice versa.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Object store management is critically important to the transaction service.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-ObjectStore_management">
+		<title>ObjectStore management</title>
+		<para>
+			Within the transaction service installation, the object store is updated regularly whenever transactions are created, or when Transactional Objects for Java is used. In a failure free environment, the only object states which should reside within the object store are those representing objects created with the Transactional Objects for Java API. However, if failures occur, transaction logs may remain in the object store until crash recovery facilities have resolved the transactions they represent. As such it is very important that the contents of the object store are not deleted without due care and attention, as this will make it impossible to resolve in doubt transactions. In addition, if multiple users share the same object store it is important that they realise this and do not simply delete the contents of the object store assuming it is an exclusive resource.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-ArjunaTA_runtime_information">
+		<title>ArjunaTA runtime information</title>
+		<para>
+			Each module that comprises ArjunaTA possesses a class called Info. These classes all provide a single toString method that returns an XML document representing the configuration information for that module. So, for example:
+		</para>
+<screen>
+	&lt;module-info name="arjuna"&gt;&lt;source-identifier&gt;unknown&lt;/source-identifier&gt;&lt;build-information&gt;Arjuna Technologies [mlittle] (Windows 2000 5.0)&lt;/build-information&gt;&lt;version&gt;unknown&lt;/version&gt;&lt;date&gt;2002/06/15 04:06 PM&lt;/date&gt;&lt;notes&gt;&lt;/notes&gt;&lt;configuration&gt;&lt;properties-file dir="null"&gt;arjuna.properties&lt;/properties-file&gt;&lt;object-store-root&gt;null&lt;/object-store-root&gt;&lt;/configuration&gt;&lt;/module-info&gt;
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Failure_recovery_administration">
+		<title>Failure recovery administration</title>
+		<para>
+			The failure recovery subsystem of ArjunaTA will ensure that results of a transaction are applied consistently to all resources affected by the transaction, even if any of the application processes or the machine hosting them crash or lose network connectivity. In the case of machine (system) crash or network failure, the recovery will not take place until the system or network are restored, but the original application does not need to be restarted – recovery responsibility is delegated to the Recovery Manager process (see below). Recovery after failure requires that information about the transaction and the resources involved survives the failure and is accessible afterward: this information is held in the ActionStore, which is part of the ObjectStore.
+		</para>
+		<warning>
+			<para>
+				If the ObjectStore is destroyed or modified, recovery may not be possible.
+			</para>
+		</warning>
+		<para>
+			Until the recovery procedures are complete, resources affected by a transaction that was in progress at the time of the failure may be inaccessible. For database resources, this may be reported as tables or rows held by <emphasis>in-doubt transactions</emphasis>. For TransactionalObjects for Java resources, an attempt to activate the Transactional Object (as when trying to get a lock) will fail.
+		</para>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-The_Recovery_Manager">
+			<title>The Recovery Manager</title>
+			<para>
+				The failure recovery subsystem of ArjunaTA requires that the stand-alone Recovery Manager process be running for each ObjectStore (typically one for each node on the network that is running ArjunaTA applications). The <filename>RecoveryManager</filename> file is located in the <filename>arjunacore</filename> jar file within the package <package>com.arjuna.ats.arjuna.recovery.RecoveryManager</package>. To start the Recovery Manager issue the following command:
+			</para>
+		</formalpara>
+<screen>
+java com.arjuna.ats.arjuna.recovery.RecoveryManager
+</screen>
+		<para>
+			If the -test flag is used with the Recovery Manager then it will display a <emphasis>Ready</emphasis> message when initialised, for instance:
+		</para>
+<screen>
+java com.arjuna.ats.arjuna.recovery.RecoveryManager -test
+</screen>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Configuring_the_Recovery_Manager">
+			<title>Configuring the Recovery Manager</title>
+			<para>
+				The RecoveryManager reads the properties defined in the arjuna.properties file and then also reads the property file RecoveryManager.properties, from the same directory as it found the arjuna properties file. An entry for a property in the RecoveryManager properties file will override an entry for the same property in the main TransactionService properties file. Most of the entries are specific to the Recovery Manager.
+			</para>
+		</formalpara>
+		<para>
+			A default version of RecoveryManager.properties is supplied with the distribution – this can be used without modification, except possibly the debug tracing fields (see below, Output). The rest of this section discusses the issues relevant in setting the properties to other values (in the order of their appearance in the default version of the file).
+		</para>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Output">
+			<title>Output</title>
+			<para>
+				It is likely that installations will want to have some form of output from the RecoveryManager, to provide a record of what recovery activity has taken place. RecoveryManager uses the logging tracing mechanism provided by the Arjuna Common Logging Framework (CLF), which provides a high level interface that hides differences that exist between existing logging APIs such Jakarta log4j or JDK 1.4 logging API. CLF indirects all logging via the Apache Commons Logging framework and configuration is assumed to occur through that framework.
+			</para>
+		</formalpara>
+		<para>
+			With the CLF applications make logging calls on logger objects. Loggers may use logging Levels to decide if they are interested in a particular log message. Each log message has an associated log Level, that gives the importance and urgency of a log message. The set of possible Log Levels are DEBUG, INFO, WARN, ERROR and FATAL. Defined Levels are ordered according to their integer values as follows: DEBUG &lt; INFO &lt; WARN &lt; ERROR &lt; FATAL.
+		</para>
+		<para>
+			The CLF provides an extension to filter logging messages according to finer granularity an application may define. That is, when a log message is provided to the logger with the DEBUG level, additional conditions can be specified to determine if the log message is enabled or not.
+		</para>
+		<note>
+			<para>
+				These conditions are applied if and only the DEBUG level is enabled and the log request performed by the application specifies debugging granularity.
+			</para>
+		</note>
+		<para>
+			When enabled, Debugging is filtered conditionally on three variables:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Debugging level: this is where the log request with the DEBUG Level is generated from, for example, constructors or basic methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Visibility level: the visibility of the constructor, method, etc. that generates the debugging.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Facility code: for instance the package or sub-module within which debugging is generated, for example, the object store.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			According to these variables the CLF defines three interfaces. A particular product may implement its own classes according to its own finer granularity. ArjunaTA uses the default Debugging level and the default Visibility level provided by CLF, but it defines its own Facility Code. ArjunaTA uses the default level assigned to its logger objects (DEBUG). However, it uses the finer debugging features to disable or enable debug messages. Finer debugging values used by the ArjunaTA are defined below:
+		</para>
+		<para>
+			Debugging level – ArjunaTA uses the default values defined in the class <classname>com.arjuna.common.util.logging.DebugLevel</classname>
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					NO_DEBUGGING: No diagnostics.
+				</para>
+				<para>
+					A logger object assigned with this values discard all debug requests
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FULL_DEBUGGING: Full diagnostics.
+				</para>
+				<para>
+					A Logger object assigned with this value allows all debug requests if the facility code and the visibility level match those allowed by the logger.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Additional Debugging Values are:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					CONSTRUCTORS: Diagnostics from constructors.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DESTRUCTORS: Diagnostics from finalizers.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					CONSTRUCT_AND_DESTRUCT: Diagnostics from constructors and finalizers.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FUNCTIONS: Diagnostics from functions.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					OPERATORS: Diagnostics from operators, such as equals.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FUNCS_AND_OPS: Diagnostics from functions and operations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					ALL_NON_TRIVIAL: Diagnostics from all non-trivial operations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					TRIVIAL_FUNCS: Diagnostics from trivial functions.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					TRIVIAL_OPERATORS: Diagnostics from trivial operations, and operators.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					ALL_TRIVIAL: Diagnostics from all trivial operations.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Visibility level – ArjunaTA uses the default values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					VIS_NONE: No Diagnostic
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PRIVATE: Only from private methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PROTECTED: Only from protected methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PUBLIC: Only from public methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_PACKAGE: only from package methods.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					VIS_ALL: Full Diagnostic .
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Facility Code – ArjunaTA uses the following values defined in the class <classname>com.arjuna.common.util.logging.VisibilityLevel</classname>.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					FAC_ATOMIC_ACTION = 0x0000001 (atomic action core module).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_BUFFER_MAN = 0x00000004 (state management (buffer) classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_ABSTRACT_REC = 0x00000008 (abstract records).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_OBJECT_STORE = 0x00000010 (object store implementations).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_STATE_MAN = 0x00000020 (state management and StateManager).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_SHMEM = 0x00000040 (shared memory implementation classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_GENERAL = 0x00000080 (general classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_CRASH_RECOVERY = 0x00000800 (detailed trace of crash recovery module and classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_THREADING = 0x00002000 (threading classes).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					AC_JDBC = 0x00008000 (JDBC 1.0 and 2.0 support).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					FAC_RECOVERY_NORMAL = 0x00040000 (normal output for crash recovery manager).
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			To ensure appropriate output, it is necessary to set some of the finer debug properties explicitly in the <filename>CommonLogging.xml</filename> file, to enable logging messages issued by the ArjunaTA module.
+		</para>
+		<para>
+			Messages describing the start and the periodical behavior made by the RecoveryManager are output using the INFO level. If other debug tracing is wanted, the finer debugging level should be set appropriately. For instance, the following configuration, in the <filename>CommonLogging.xml</filename>, enables all debug messages related to the Crash Recovery protocol and issued by the ArjunaTA module.
+		</para>
+<screen>
+&lt;!--  Common logging related properties.   --&gt;
+	&lt;property
+		 name="com.arjuna.common.util.logging.DebugLevel"
+		 value="0x00000000"/&gt;
+	&lt;property
+		 name="com.arjuna.common.util.logging.FacilityLevel"
+		 value="0xffffffff"/&gt;
+	&lt;property
+		 name="com.arjuna.common.util.logging.VisibilityLevel"
+		 value="0xffffffff"/&gt;
+</screen>
+		<note>
+			<para>
+				Two logger objects are provided, one manages I18N messages and a second does not.
+			</para>
+		</note>
+		<para>
+			Setting the normal recovery messages to the INFO level allows the RecoveryManager producing a moderate level of reporting. If nothing is going on, it just reports the entry into each module for each periodic pass. To disable INFO messages produced by the Recovery Manager, the logging level could be set to the higher level: ERROR. Setting the level to ERROR means that the RecoveryManager will only produce error, warning or fatal messages.
+		</para>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Periodic_Recovery">
+			<title>Periodic Recovery</title>
+			<para>
+				The RecoveryManager scans the ObjectStore and other locations of information, looking for transactions and resources that require, or may require recovery. The scans and recovery processing are performed by recovery modules, (instances of classes that implement the com.arjuna.ats.arjuna.recovery.RecoveryModule interface), each with responsibility for a particular category of transaction or resource. The set of recovery modules used are dynamically loaded, using properties found in the RecoveryManager property file.
+			</para>
+		</formalpara>
+		<para>
+			The interface has two methods: <methodname>periodicWorkFirstPass</methodname> and <methodname>periodicWorkSecondPass</methodname>. At an interval (defined by property <property>com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod</property>), the RecoveryManager will call the first pass method on each property, then wait for a brief period (defined by property <property>com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod</property>), then call the second pass of each module. Typically, in the first pass, the module scans (e.g. the relevant part of the ObjectStore) to find transactions or resources that are in-doubt (i.e. are part way through the commitment process). On the second pass, if any of the same items are still in-doubt, it is possible the original application process has crashed and the item is a candidate for recovery.
+		</para>
+		<para>
+			An attempt, by the RecoveryManager, to recover a transaction that is still progressing in the original process(es) is likely to break the consistency. Accordingly, the recovery modules use a mechanism (implemented in the <package>com.arjuna.ats.arjuna.recovery.TransactionStatusManager</package> package) to check to see if the original process is still alive, and if the transaction is still in progress. The RecoveryManager only proceeds with recovery if the original process has gone, or, if still alive, the transaction is completed. (If a server process or machine crashes, but the transaction-initiating process survives, the transaction will complete, usually generating a warning. Recovery of such a transaction is the RecoveryManager’s responsibility).
+		</para>
+		<para>
+			It is clearly important to set the interval periods appropriately. The total iteration time will be the sum of the periodicRecoveryPeriod, recoveryBackoffPeriod and the length of time it takes to scan the stores and to attempt recovery of any in-doubt transactions found, for all the recovery modules. The recovery attempt time may include connection timeouts while trying to communicate with processes or machines that have crashed or are inaccessible (which is why there are mechanisms in the recovery system to avoid trying to recover the same transaction for ever). The total iteration time will affect how long a resource will remain inaccessible after a failure – periodicRecoveryPeriod should be set accordingly (default is 120 seconds). The recoveryBackoffPeriod can be comparatively short (default is 10 seconds) – its purpose is mainly to reduce the number of transactions that are candidates for recovery and which thus require a call to the original process to see if t!
 hey are still in progress.
+		</para>
+		<note>
+			<para>
+				In previous versions of ArjunaCore there was no contact mechanism, and the backoff period had to be long enough to avoid catching transactions in flight at all. From 3.0, there is no such risk.
+			</para>
+		</note>
+		<para>
+			Two recovery modules (implementations of the <interfacename>com.arjuna.ats.arjuna.recovery.RecoveryModule</interfacename> interface) are supplied with ArjunaTA, supporting various aspects of transaction recovery including JDBC recovery. It is possible for advanced users to create their own recovery modules and register them with the Recovery Manager. The recovery modules are registered with the RecoveryManager using properties that begin with <property>com.arjuna.ats.arjuna.recovery.RecoveryExtension</property>. These will be invoked on each pass of the periodic recovery in the sort-order of the property names – it is thus possible to predict the ordering (but note that a failure in an application process might occur while a periodic recovery pass is in progress). The default Recovery Extension settings are:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.recoveryExtension1 = com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule
+	
+com.arjuna.ats.arjuna.recovery.recoveryExtension2 = com.arjuna.ats.txoj.recovery.TORecoveryModule
+</screen>
+		<formalpara id="form-Transactions_JTA_Administration_Guide-Failure_recovery_administration-Expired_entry_removal">
+			<title>Expired entry removal</title>
+			<para>
+				The operation of the recovery subsystem will cause some entries to be made in the ObjectStore that will not be removed in normal progress. The RecoveryManager has a facility for scanning for these and removing items that are very old. Scans and removals are performed by implementations of the <interfacename>com.arjuna.ats.arjuna.recovery.ExpiryScanner</interfacename> interface. Implementations of this interface are loaded by giving the class name as the value of a property whose name begins with <property>com.arjuna.ats.arjuna.recovery.expiryScanner</property>. The RecoveryManager calls the <methodname>scan()</methodname> method on each loaded Expiry Scanner implementation at an interval determined by the property <property>com.arjuna.ats.arjuna.recovery.expiryScanInterval</property>. This value is given in hours – default is 12. An expiryScanInterval value of zero will suppress any expiry scanning. If the value as supplied is positive, the first scan is performed whe!
 n RecoveryManager starts; if the value is negative, the first scan is delayed until after the first interval (using the absolute value)
+			</para>
+		</formalpara>
+		<para>
+			The kinds of item that are scanned for expiry are:
+		</para>
+		<para>
+			TransactionStatusManager items : one of these is created by every application process that uses ArjunaCore – they contain the information that allows the RecoveryManager to determine if the process that initiated the transaction is still alive, and what the transaction status is. The expiry time for these is set by the property <property>com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime</property> (in hours – default is 12, zero means never expire). The expiry time should be greater than the lifetime of any single ArjunaTA-using process.
+		</para>
+		<para>
+			The Expiry Scanner properties for these are:
+		</para>
+<screen>
+com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager = com.arjuna.ats.internal.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Errors_and_Exceptions">
+		<title>Errors and Exceptions</title>
+		<para>
+			In this section we shall cover the types of errors and exceptions which may be thrown or reported during a transactional application and give probable indications of their causes.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					NO_MEMORY: the application has run out of memory (thrown an OutOfMemoryError) and ArjunaTA has attempted to do some cleanup (by running the garbage collector) before re-throwing the exception. This is probably a transient problem and retrying the invocation should succeed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					com.arjuna.ats.arjuna.exceptions.FatalError: an error has occurred which means that the transaction system must shut down. Prior to this error being thrown the transaction service will have ensured that all running transactions have rolled back. If caught, the application should tidy up and exit. If further work is attempted, application consistency may be violated.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					com.arjuna.ats.arjuna.exceptions.LicenceError: an attempt has been made to use the transaction service in a manner inconsistent with the current licence. The transaction service will not allow further forward progress for existing or new transactions.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					com.arjuna.ats.arjuna.exceptions.ObjectStoreError: an error occurred while the transaction service attempted to use the object store. Further forward progress is not possible.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Object store warnings about access problems on states may occur during the normal execution of crash recovery. This is the result of multiple concurrent attempts to perform recovery on the same transaction. It can be safely ignored.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Administration_Guide-Administration_of_ArjunaTA-Selecting_the_JTA_implementation">
+		<title>Selecting the JTA implementation</title>
+		<para>
+			Two variants of the JTA implementation are now provided and accessible through the same interface. These are:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					A purely local JTA, which only allows non-distributed JTA transactions to be executed. This is the only version available with the ArjunaTA product.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					A remote, CORBA-based JTA, which allows distributed JTA transactions to be executed. This version is only available with the ArjunaJTS product and requires a supported CORBA ORB.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				Both of these implementations are fully compatible with the transactional JDBC driver provided with ArjunaTA.
+			</para>
+		</note>
+		<para>
+			In order to select the local JTA implementation it is necessary to perform the following steps:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</code>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</property> is set to <code>com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</code>.
+				</para>
+			</listitem>
+		</orderedlist>
+		<note>
+			<para>
+				These settings are the default values for the properties and do not need to be specified if the local implementation is required.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_JTA_Administration_Guide-Transactions_JTA_Administration_Guide">
+	<title>JBoss Transactions JTA Administration Guide CP03</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>4</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is about the administration of Arjuna TA</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_JTA_Administration_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/JBoss_Transactions_JTA_Administration_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Administration_of_ArjunaTA.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="pref-Transactions_JTA_Administration_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	</xi:fallback></xi:include>
+</preface>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Administration_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+#Makefile for Transactions_JTA_Programmers_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/An_Introduction_to_the_JTA.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,52 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-An_Introduction_to_the_JTA">
+	<title>An Introduction to the JTA</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-An_Introduction_to_the_JTA-The_Java_Transaction_API">
+		<title>The Java Transaction API</title>
+		<para>
+			The interfaces specified by the many transaction standards are typically too low-level for most application programmers. Therefore, Sun Microsystems has specified higher-level interfaces to assist in the development of distributed transactional applications. Note, these interfaces are still low-level, and require, for example, the programmer to be concerned with state management and concurrency for transactional application. In addition, they are geared more for applications which require XA resource integration capabilities, rather than the more general resources which the other APIs allow.
+		</para>
+		<para>
+			With reference to [JTA99], distributed transaction services typically involve a number of participants:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Application server: which provides the infrastructure required to support the application run-time environment which includes transaction state management, for example, an EJB server.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Transaction manager: provides the services and management functions required to support transaction demarcation, transactional resource management, synchronisation and transaction context propagation.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Resource manager: (through a resource adapter<footnote>
+					<para>
+						A Resource Adapter is used by an application server or client to connect to a Resource Manager. JDBC drivers which are used to connect to relational databases are examples of Resource Adapters.
+					</para>
+					</footnote>) provides the application with access to resources. The resource manager participates in distributed transactions by implementing a transaction resource interface used by the transaction manager to communicate transaction association, transaction completion and recovery.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					A communication resource manager (CRM): supports transaction context propagation and access to the transaction service for incoming and outgoing requests.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			From the transaction manager’s perspective, the actual implementation of the transaction services does not need to be exposed; only high-level interfaces need to be defined to allow transaction demarcation, resource enlistment, synchronization and recovery process to be driven from the users of the transaction services. The JTA is a high-level application interface that allows a transactional application to demarcate transaction boundaries, and contains also contains a mapping of the X/Open XA protocol.
+		</para>
+		<note>
+			<para>
+				The JTA support provided by JBossJTA is compliant with the 1.0.1 specification.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,32 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_JTA_Programmers_Guide-Transactions_JTA_Programmers_Guide">
+	<title>JBoss Transactions JTA Programmers Guide CP03</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>4</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is about the Transactions JTA from the view of the
+programmer</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Configuring_JBossJTA.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,95 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Configuring_JBossJTA">
+	<title>Configuring JBossJTA</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Configuring_JBossJTA-Configuring_options">
+		<title>Configuring options</title>
+		<para>
+			The following table shows the configuration features, with default values shown in italics. For more detailed information, the relevant section numbers are provided.
+		</para>
+		<table frame="all" id="tabl-Transactions_JTA_Programmers_Guide-Configuring_options-JBossJTA_configuration_options.">
+			<title>JBossJTA configuration options.</title>
+			<tgroup cols="3">
+				<thead>
+					<row>
+						<entry>
+							Configuration Name
+						</entry>
+						<entry>
+							Possibile Values
+						</entry>
+						<entry>
+							Relevant Section
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.supportSubtransactions
+						</entry>
+						<entry>
+							YES/NO
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.jtaTMImplementation
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple/com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.jtaUTImplementation
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple/com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.xaBackoffPeriod
+						</entry>
+						<entry>
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jdbc.isolationLevel
+						</entry>
+						<entry>
+							Any supported JDBC isolation level.
+						</entry>
+						<entry>
+						</entry>
+					</row>
+					<row>
+						<entry>
+							com.arjuna.ats.jta.xaTransactionTimetouEnabled
+						</entry>
+						<entry>
+							true/false
+						</entry>
+						<entry>
+							Chapter 3
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Examples.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Examples.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Examples.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,356 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Examples">
+	<title>Examples</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Examples-JDBC_example">
+		<title>JDBC example</title>
+		<para>
+			The following code illustrates many of the points described above (note that for simplicity, much error checking code has been remove). This example assumes that you are using the transactional JDBC driver provided with JBossTS. For details about how to configure and use this driver see the previous Chapter.
+		</para>
+<screen>
+public class JDBCTest
+{
+public static void main (String[] args)
+{
+	/*
+	 */
+	
+	Connection conn = null;
+	Connection conn2 = null;
+	Statement stmt = null;        // non-tx statement
+	Statement stmtx = null;	// will be a tx-statement
+	Properties dbProperties = new Properties();
+	
+	try
+	{
+		System.out.println("\nCreating connection to database: "+url);
+	
+		/*
+		 * Create conn and conn2 so that they are bound to the JBossTS
+		 * transactional JDBC driver. The details of how to do this will
+		 * depend on your environment, the database you wish to use and
+		 * whether or not you want to use the Direct or JNDI approach. See
+		 * the appropriate chapter in the JTA Programmers Guide.
+		 */
+	
+		stmt = conn.createStatement();  // non-tx statement
+	
+		try
+		{
+			stmt.executeUpdate("DROP TABLE test_table");
+			stmt.executeUpdate("DROP TABLE test_table2");
+		}
+		catch (Exception e)
+		{
+			// assume not in database.
+		}
+	
+		try
+		{
+			stmt.executeUpdate("CREATE TABLE test_table (a INTEGER,b INTEGER)");
+			stmt.executeUpdate("CREATE TABLE test_table2 (a INTEGER,b INTEGER)");
+		}
+		catch (Exception e)
+		{
+		}
+	
+		try
+		{
+			System.out.println("Starting top-level transaction.");
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().begin();
+	
+			stmtx = conn.createStatement(); // will be a tx-statement
+	
+			System.out.println("\nAdding entries to table 1.");
+	
+			stmtx.executeUpdate("INSERT INTO test_table (a, b) VALUES (1,2)");
+	
+			ResultSet res1 = null;
+	
+			System.out.println("\nInspecting table 1.");
+	
+			res1 = stmtx.executeQuery("SELECT * FROM test_table");
+			while (res1.next())
+			{
+				System.out.println("Column 1: "+res1.getInt(1));
+				System.out.println("Column 2: "+res1.getInt(2));
+			}
+	
+			System.out.println("\nAdding entries to table 2.");
+	
+			stmtx.executeUpdate("INSERT INTO test_table2 (a, b) VALUES (3,4)");
+			
+			res1 = stmtx.executeQuery("SELECT * FROM test_table2");
+			
+			System.out.println("\nInspecting table 2.");
+	
+			while (res1.next())
+			{
+				System.out.println("Column 1: "+res1.getInt(1));
+				System.out.println("Column 2: "+res1.getInt(2));
+			}
+			System.out.print("\nNow attempting to rollback changes.");
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().rollback();
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().begin();
+	
+			stmtx = conn.createStatement();
+			ResultSet res2 = null;
+	
+			System.out.println("\nNow checking state of table 1.");
+	
+			res2 = stmtx.executeQuery("SELECT * FROM test_table");
+			while (res2.next())
+			{
+				System.out.println("Column 1: "+res2.getInt(1));
+				System.out.println("Column 2: "+res2.getInt(2));
+			}
+	
+			System.out.println("\nNow checking state of table 2.");
+	
+			stmtx = conn.createStatement();
+			res2 = stmtx.executeQuery("SELECT * FROM test_table2");
+			while (res2.next())
+			{
+				System.out.println("Column 1: "+res2.getInt(1));
+				System.out.println("Column 2: "+res2.getInt(2));
+			}
+	
+			com.arjuna.ats.jta.UserTransaction.userTransaction().commit(true);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+			System.exit(0);
+		}
+	}
+	catch (Exception sysEx)
+	{
+		sysEx.printStackTrace();
+		System.exit(0);
+	}
+}
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Examples-Failure_recovery_example">
+		<title>Failure recovery example</title>
+		<para>
+			This class implements the <interfacename>XAResourceRecovery</interfacename> interface for <code>XAResources</code>. The parameter supplied in setParameters can contain arbitrary information necessary to initialize the class once created. In this instance it contains the name of the property file in which the db connection information is specified, as well as the number of connections that this file contains information on (separated by ;).
+		</para>
+		<important>
+			<para>
+				This is only an <emphasis>example</emphasis> of the sorts of things an <code>XAResourceRecovery</code> implementer could do. This implementation uses a property file that is assumed to contain sufficient information to recreate connections used during the normal run of an application so that we can perform recovery on them. It is not recommended that information such as user name and password appear in such a raw text format as it opens up a potential security hole.
+			</para>
+		</important>
+		<para>
+			The db parameters specified in the property file are assumed to be in the format:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					DB_x_DatabaseURL=
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DB_x_DatabaseUser=
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DB_x_DatabasePassword=
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					DB_x_DatabaseDynamicClass=
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Where x is the number of the connection information.
+		</para>
+		<note>
+			<para>
+				Some error handling code has been removed from this text for ease of readability purposes.
+			</para>
+		</note>
+<screen>
+/*
+ * Some XAResourceRecovery implementations will do their startup work here,
+ * and then do little or nothing in setDetails. Since this one needs to know
+ * dynamic class name, the constructor does nothing.
+ */
+	
+public BasicXARecovery () throws SQLException
+{
+	numberOfConnections = 1;
+	connectionIndex = 0;
+	props = null;
+}
+	
+/*
+ * The recovery module will have chopped off this class name already. The
+ * parameter should specify a property file from which the url, user name,
+ * password, etc. can be read.
+ * 
+ * @message com.arjuna.ats.internal.jdbc.recovery.initexp An exception
+ *          occurred during initialisation.
+ */
+	
+public boolean initialise (String parameter) throws SQLException
+{
+	if (parameter == null) 
+		return true;
+	
+	int breakPosition = parameter.indexOf(BREAKCHARACTER);
+	String fileName = parameter;
+	
+	if (breakPosition != -1)
+	{
+		fileName = parameter.substring(0, breakPosition - 1);
+	
+		try
+		{
+			numberOfConnections = Integer.parseInt(parameter.substring(breakPosition + 1));
+		}
+		catch (NumberFormatException e)
+		{
+			return false;
+		}
+	}
+	
+	try
+	{
+		String uri = com.arjuna.common.util.FileLocator.locateFile(fileName);
+		jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class.getName(), uri);
+	
+		props = jdbcPropertyManager.propertyManager.getProperties();
+	}
+	catch (Exception e)
+	{
+		return false;
+	}
+	
+	return true;
+}
+	
+/*
+ * @message com.arjuna.ats.internal.jdbc.recovery.xarec {0} could not find
+ *          information for connection!
+ */
+	
+public synchronized XAResource getXAResource () throws SQLException
+{
+	JDBC2RecoveryConnection conn = null;
+	
+	if (hasMoreResources())
+	{
+		connectionIndex++;
+	
+		conn = getStandardConnection();
+	
+	if (conn == null) conn = getJNDIConnection();
+	}
+	
+		return conn.recoveryConnection().getConnection().getXAResource();
+}
+	
+public synchronized boolean hasMoreResources ()
+{
+	if (connectionIndex == numberOfConnections) 
+		return false;
+	else
+		return true;
+}
+	
+private final JDBC2RecoveryConnection getStandardConnection ()
+	throws SQLException
+{
+	String number = new String("" + connectionIndex);
+	String url = new String(dbTag + number + urlTag);
+	String password = new String(dbTag + number + passwordTag);
+	String user = new String(dbTag + number + userTag);
+	String dynamicClass = new String(dbTag + number + dynamicClassTag);
+	
+	Properties dbProperties = new Properties();
+	
+	String theUser = props.getProperty(user);
+	String thePassword = props.getProperty(password);
+	
+	if (theUser != null)
+	{
+		dbProperties.put(TransactionalDriver.userName, theUser);
+		dbProperties.put(TransactionalDriver.password, thePassword);
+	
+		String dc = props.getProperty(dynamicClass);
+	
+		if (dc != null)
+			dbProperties.put(TransactionalDriver.dynamicClass, dc);
+	
+		return new JDBC2RecoveryConnection(url, dbProperties);
+	}
+	else
+		return null;
+}
+	
+private final JDBC2RecoveryConnection getJNDIConnection ()
+	throws SQLException
+{
+	String number = new String("" + connectionIndex);
+	String url = new String(dbTag + jndiTag + number + urlTag);
+	String password = new String(dbTag + jndiTag + number + passwordTag);
+	String user = new String(dbTag + jndiTag + number + userTag);
+	
+	Properties dbProperties = new Properties();
+	
+	String theUser = props.getProperty(user);
+	String thePassword = props.getProperty(password);
+	
+	if (theUser != null)
+	{
+		dbProperties.put(TransactionalDriver.userName, theUser);
+		dbProperties.put(TransactionalDriver.password, thePassword);
+	
+		return new JDBC2RecoveryConnection(url, dbProperties);
+	}
+	else
+		return null;
+}
+	
+private int numberOfConnections;
+private int connectionIndex;
+private Properties props;
+private static final String dbTag = "DB_";
+private static final String urlTag = "_DatabaseURL";
+private static final String passwordTag = "_DatabasePassword";
+private static final String userTag = "_DatabaseUser";
+private static final String dynamicClassTag = "_DatabaseDynamicClass";
+private static final String jndiTag = "JNDI_";
+	
+/*
+ * Example:
+ * 
+ * DB2_DatabaseURL=jdbc\:arjuna\:sequelink\://qa02\:20001
+ * DB2_DatabaseUser=tester2 DB2_DatabasePassword=tester
+ * DB2_DatabaseDynamicClass=com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1
+ * 
+ * DB_JNDI_DatabaseURL=jdbc\:arjuna\:jndi DB_JNDI_DatabaseUser=tester1
+ * DB_JNDI_DatabasePassword=tester DB_JNDI_DatabaseName=empay
+ * DB_JNDI_Host=qa02 DB_JNDI_Port=20000
+ */
+
+ private static final char BREAKCHARACTER = &#39;;&#39;; // delimiter for parameters
+</screen>
+		<para>
+			The class <classname>com.arjuna.ats.internal.jdbc.recovery.JDBC2RecoveryConnection</classname> may be used to create a new connection to the database using the same parameters that were used to create the initial connection.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_JTA_Programmers_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JBoss_Transactions_JTA_Programmers_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="An_Introduction_to_the_JTA.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="The_Resource_Manager.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transaction_Recovery.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="JDBC_and_Transactions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Examples.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Configuring_JBossJTA.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Using_JBossJTA_in_Application_Servers.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/JDBC_and_Transactions.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,350 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions">
+	<title>JDBC and Transactions</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions-Using_the_transactional_JDBC_driver">
+		<title>Using the transactional JDBC driver</title>
+		<para>
+			JBossJTA supports the construction of both local and distributed transactional applications which access databases using the JDBC 2.0 APIs. JDBC 2.0 supports two-phase commit of transactions, and is similar to the XA X/Open standard. The JDBC 2.0 support is found in the com.arjuna.ats.jdbc package.
+		</para>
+		<para>
+			The JDBC 2.0 support has been tested with the following drivers and databases:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Oracle 8.1.6/8.1.7, 9i and 10g thin driver.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					MS SQL Server 2000 native driver.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			In the past we have qualified against:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Merant’s Sequelink 5.1 with Oracle 8.1.6
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Cloudscape 3.6 with Cloudscape’s own database.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			However, these drivers and databases are no longer part of our supported platforms. They may continue to work with JBossTS, but we cannot make that guarantee.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Using_the_transactional_JDBC_driver-Managing_transactions">
+			<title>Managing transactions</title>
+			<para>
+				JBossJTA must be able to associate work performed on a JDBC connection with a specific transaction. Therefore, implicit transaction propagation and/or indirect transaction management must be used by applications, i.e., for each JDBC connection it must be possible for JBossJTA to determine the invoking thread’s current transaction context.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Using_the_transactional_JDBC_driver-Restrictions">
+			<title>Restrictions</title>
+			<para>
+				The following restrictions are imposed by limitations in the JDBC specifications and by JBossJTA to ensure that transactional interactions with JDBC databases can be correctly managed:
+			</para>
+		</formalpara>
+		<para>
+			Nested transactions are not supported by JDBC 2.0. If an attempt is made to use a JDBC connection within a subtransaction, JBossJTA will throw a suitable exception and no work will be allowed on that connection. However, if you wish to have nested transactions, then you can set the <property>com.arjuna.ats.jta.supportSubtransactions</property> property to YES.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions-Transactional_drivers">
+		<title>Transactional drivers</title>
+		<para>
+			The JBossJTA approach to incorporating JDBC connections within transactions is to provide transactional JDBC drivers through which all interactions occur. These drivers intercept all invocations and ensure that they are registered with, and driven by, appropriate transactions. There is a single type of transactional driver through which any JDBC driver can be driven; obviously if the database is not transactional then ACID properties cannot be guaranteed. This driver is <code>com.arjuna.ats.jdbc.TransactionalDriver</code>, which implements the <interfacename>java.sql.Driver</interfacename> interface.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Transactional_drivers-Loading_drivers">
+			<title>Loading drivers</title>
+			<para>
+				The driver may be directly instantiated and used within an application. For example:
+			</para>
+		</formalpara>
+<screen>
+TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();
+</screen>
+		<para>
+			They can be registered with the JDBC driver manager (<code>java.sql.DriverManager</code>) by adding them to the Java system properties. The <property>jdbc.drivers</property> property contains a list of driver class names, separated by colons, that are loaded by the JDBC driver manager when it is initialized.
+		</para>
+<screen>
+/*
+ * Register the driver via the system properties variable
+ * "jdbc.drivers"
+ */ 
+	
+Properties p = System.getProperties(); 
+	
+switch (dbType)
+{
+case MYSQL:
+	p.put("jdbc.drivers", "org.gjt.mm.mysql.Driver"); 
+	break;
+case CLOUDSCAPE:
+	p.put("jdbc.drivers", "COM.cloudscape.core.JDBCDriver"); 
+	break;
+}
+	
+System.setProperties(p);
+</screen>
+		<para>
+			Alternatively, the <methodname>Class.forName()</methodname> method may be used to load the driver or drivers:
+		</para>
+<screen>
+Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
+</screen>
+		<para>
+			Calling <methodname>Class.forName()</methodname> will automatically register the driver with the JDBC driver manager. It is also possible to explicitly create an instance of the JDBC driver:
+		</para>
+<screen>
+sun.jdbc.odbc.JdbcOdbcDriver drv = new sun.jdbc.odbc.JdbcOdbcDriver();
+	
+DriverManager.registerDriver(drv);
+</screen>
+		<para>
+			When you have loaded a driver, it is available for making a connection with a DBMS.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-JDBC_and_Transactions-Connections">
+		<title>Connections</title>
+		<para>
+			In this section we shall discuss the notion of transactional JDBC connections, how they are managed within JBossJTA and the implications on using them within an application.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Making_the_connection">
+			<title>Making the connection</title>
+			<para>
+				Because JDBC connectivity in JBossJTA works by simply providing a new JDBC driver, application code can remain relatively the same to that when not using transactions. Typically, the application programmer need only start and terminate transactions.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-JDBC_2.0">
+			<title>JDBC 2.0</title>
+			<para>
+				Before describing the JDBC 2.0 support it is necessary to mention that the following properties can be set and passed to the JBossJTA driver (they are all located in the <classname>com.arjuna.ats.jdbc.TransactionalDriver</classname> class):
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<property>userName</property>: the user name to use when attempting to connect to the database.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>password</property>: the password to use when attempting to connect to the database.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>createDb</property>: if set to true, the driver will attempt to create the database when it connects. This may not be supported by all JDBC 2.0 implementations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<property>dynamicClass</property>: this specifies a class to instantiate to connect to the database, rather than using JNDI.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-XADataSources">
+			<title>XADataSources</title>
+			<para>
+				JDBC 2.0 connections are created from appropriate DataSources. Those connections which must participate within distributed transactions are obtained from <code>XADataSources</code>. Therefore, when using a JDBC 2.0 driver, JBossJTA will use the appropriate DataSource whenever a connection to the database is made. It will then obtain <code>XAResources</code> and register them with the transaction via the JTA interfaces. It is these <code>XAResources</code> which the transaction service will use when the transaction terminates in order to drive the database to either commit or rollback the changes made via the JDBC connection.
+			</para>
+		</formalpara>
+		<para>
+			There are two ways in which the JBossJTA JDBC 2.0 support can obtain <code>XADataSources</code>. These will be explained in the following sections. Note, for simplicity we shall assume that the JDBC 2.0 driver is instantiated directly by the application.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Java_Naming_and_Directory_Interface_JNDI">
+			<title>Java Naming and Directory Interface (JNDI)</title>
+			<para>
+				In order to allow a JDBC driver to use arbitrary DataSources without having to know specific details about their implementations, DataSources are typically obtained from JNDI. A specific (XA)DataSource can be created and registered with an appropriate JNDI implementation, and the application (or JDBC driver) can later bind to and use it. Since JNDI only allows the application to see the (XA)DataSource as an instance of the interface (for example, <property>javax.sql.XADataSource</property>) rather than as an instance of the implementation class (for example, <property>com.mydb.myXADataSource</property>), the application is not tied at build time to only use a specific (XA)DataSource implementation.
+			</para>
+		</formalpara>
+		<para>
+			To get the <classname>TransactionalDriver</classname> class to use a JNDI registered <code>XADataSource</code> it is first necessary to create the <code>XADataSource</code> instance and store it in an appropriate JNDI implementation. Details of how to do this can be found in the JDBC 2.0 tutorial available at JavaSoft. An example is show below:
+		</para>
+<screen>
+XADataSource ds = MyXADataSource();
+Hashtable env = new Hashtable();
+String initialCtx = PropertyManager.getProperty("Context.INITIAL_CONTEXT_FACTORY");
+	
+env.put(Context.INITIAL_CONTEXT_FACTORY, initialCtx);
+	
+initialContext ctx = new InitialContext(env);
+	
+ctx.bind("jdbc/foo", ds);
+</screen>
+		<para>
+			Where the <property>Context.INITIAL_CONTEXT_FACTORY</property> property is the JNDI way of specifying the type of JNDI implementation to use.
+		</para>
+		<para>
+			Then the application must pass an appropriate connection URL to the JDBC 2.0 driver:
+		</para>
+<screen>
+Properties dbProps = new Properties();
+	
+dbProps.setProperty(TransactionalDriver.userName, "user");
+dbProps.setProperty(TransactionalDriver.password, "password");
+	
+TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();
+Connection connection = arjunaJDBC2Driver.connect("jdbc:arjuna:jdbc/foo", dbProps);
+</screen>
+		<para>
+			The JNDI URL must be pre-pended with jdbc:arjuna: in order for the <code>ArjunaJDBC2Driver</code> to recognise that the DataSource must participate within transactions and be driven accordingly.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Dynamic_class_instantiation">
+			<title>Dynamic class instantiation</title>
+			<para>
+				Many JDBC 2.0 implementations provide proprietary implementations of <interfacename>XADataSources</interfacename> that provide non-standard extensions to the specification. In order to allow the application to remain isolated from the actual JDBC 2.0 implementation it is using and yet continue to be able to use these extensions, JBossJTA hides the details of these proprietary implementations using dynamic class instantiation. In addition, the use of JNDI is not required when using this mechanism because the actual implementation of the <interfacename>XADataSource</interfacename> will be directly instantiated, albeit in a manner which will not tie an application or driver to a specific implementation. JBossJTA therefore has several classes which are for specific JDBC 2.0 implementations, and these can be selected at runtime by the application setting the <property>dynamicClass</property> property appropriately:
+			</para>
+		</formalpara>
+		<table frame="all" id="tabl-Transactions_JTA_Programmers_Guide-Connections-Dynamic_Class_property_values_for_specific_databases">
+			<title>Dynamic Class property values for specific databases</title>
+			<tgroup cols="2">
+				<thead>
+					<row>
+						<entry>
+							Database Type
+						</entry>
+						<entry>
+							Property Name
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							Cloudscape 3.6
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jdbc.drivers.cloudscape_3_6
+						</entry>
+					</row>
+					<row>
+						<entry>
+							Sequelink 5.1
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jdbc.drivers.sequelink_5_1
+						</entry>
+					</row>
+					<row>
+						<entry>
+							Oracle 8.1.6
+						</entry>
+						<entry>
+							com.arjuna.ats.internal.jdbc.drivers.oracle_8_1_6
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+		<note>
+			<para>
+				As mentioned earlier, JBossTS no longer supports Cloudscape or Sequelink as part of the qualified drivers. Furthermore, we recommend using JNDI to obtain JDBC classes rather than the direct method described here.
+			</para>
+		</note>
+		<para>
+			The application code must specify which dynamic class the <code>TransactionalDriver</code> should instantiate when setting up the connection:
+		</para>
+<screen>
+Properties dbProps = new Properties();
+	
+dbProps.setProperty(TransactionalDriver.userName, "user");
+dbProps.setProperty(TransactionalDriver.password, "password");
+dbProps.setProperty(TransactionalDriver.dynamicClass,
+"com.arjuna.ats.internal.jdbc.drivers.sequelink_5_0");
+	
+TransactionalDriver arjunaJDBC2Driver = new TransactionalDriver();
+Connection connection = arjunaJDBC2Driver.connect("jdbc:arjuna:sequelink://host:port;databaseName=foo",dbProperties);
+</screen>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Using_the_connection">
+			<title>Using the connection</title>
+			<para>
+				Once the connection has been established (for example, using the <methodname>java.sql.DriverManager.getConnection</methodname> method), all operations on the connection will be monitored by JBossJTA. Note, it is not necessary to use the transactional connection within transactions. If a transaction is not present when the connection is used, then operations will be performed directly on the database.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				JDBC does not support subtransactions.
+			</para>
+		</note>
+		<para>
+			Transaction timeouts can be used to automatically terminate transactions should the connection not be terminated within an appropriate period.
+		</para>
+		<para>
+			JBossJTA connections can be used within multiple different transactions simultaneously, for instance, different threads, with different notions of the current transaction, may use the same JDBC connection. JBossJTA does connection pooling for each transaction within the JDBC connection. So, although multiple threads may use the same instance of the JDBC connection, internally this may be using a different connection instance per transaction. With the exception of close, all operations performed on the connection at the application level will only be performed on this transaction-specific connection.
+		</para>
+		<para>
+			JBossJTA will automatically register the JDBC driver connection with the transaction via an appropriate resource . When the transaction terminates, this resource will be responsible for either committing or rolling back any changes made to the underlying database via appropriate calls on the JDBC driver.
+		</para>
+		<para>
+			Once created, the driver and any connection can be used in the same way as any other JDBC driver or connection.
+		</para>
+<screen>
+Statement stmt = conn.createStatement();
+	
+try
+{
+	stmt.executeUpdate("CREATE TABLE test_table (a INTEGER,b INTEGER)");
+}
+catch (SQLException e)
+{
+	// table already exists
+}
+	
+stmt.executeUpdate("INSERT INTO test_table (a, b) VALUES (1,2)");
+	
+ResultSet res1 = stmt.executeQuery("SELECT * FROM test_table");
+</screen>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Connection_pooling">
+			<title>Connection pooling</title>
+			<para>
+				For each user name and password, JBossJTA will maintain a single instance of each connection for as long as that connection is in use. Subsequent requests for the same connection will get a reference to the originally created connection, rather than a new instance. Attempts to close the connection are allowed, but the connection will only actually be closed when all users (including transactions) have either finished with the connection, or issued close calls.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Reusing_connections">
+			<title>Reusing connections</title>
+			<para>
+				Some JDBC drivers allow the reuse of a connection for multiple different transactions once a given transaction has completed. Unfortunately this is not a common feature, and other drivers require a new connection to be obtained for each new transaction. By default, the JBossJTA transactional driver will always obtain a new connection for each new transaction. However, if an existing connection is available and is currently unused, it is possible to make JBossJTA reuse this connection. In order to do this, the reuseconnection=true option must be specified on the JDBC URL. For example:
+			</para>
+		</formalpara>
+<screen>
+jdbc:arjuna:sequelink://host:port;databaseName=foo;reuseconnection=true
+</screen>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Terminating_the_transaction">
+			<title>Terminating the transaction</title>
+			<para>
+				Whenever a transaction terminates (either explicitly by the application programmer, or implicitly when any associated transaction timeout expires) that has a JDBC connection registered with it, JBossJTA will drive the database (via the JDBC driver) to either commit or roll back any changes made to it. This happens transparently to the application.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-AutoCommit">
+			<title>AutoCommit</title>
+			<para>
+				If <code>AutoCommit</code> of the <code>java.sql.Connection</code> is set to true for JDBC 1.0 then the execution of every SQL statement is a separate top-level transaction, and grouping multiple statements to be managed within a single OTS transaction is not possible. Therefore, JBossJTA will disable <code>AutoCommit</code> on JDBC 1.0 connections before they can be used. If auto commit is subsequently set to true by the application, JBossJTA will raise the <code>java.sql.SQLException</code>.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-Connections-Setting_isolation_levels">
+			<title>Setting isolation levels</title>
+			<para>
+				When using the JBossJTA JDBC driver, it may be necessary to set the underlying transaction isolation level on the XA connection. By default, this is set to <code>TRANSACTION_SERIALIZABLE</code>, but you may want to set this to something more appropriate for your application. In order to do this, set the <property>com.arjuna.ats.jdbc.isolationLevel</property> property to the appropriate isolation level in string form, for example, <code>TRANSACTION_READ_COMMITTED</code>, or <code>TRANSACTION_REPEATABLE_READ</code>.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				At present this property applies to all XA connections created in the JVM.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="pref-Transactions_JTA_Programmers_Guide-Preface">
+	<title>Preface</title>
+
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+		</xi:fallback>
+	</xi:include>
+</preface>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/The_Resource_Manager.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,265 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Test">
+	<title>Test</title>
+	<para>
+		This is a test paragraph
+	</para>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-The_XAResource_Interface">
+		<title>The XAResource Interface</title>
+		<para>
+			Whereas some transaction specifications and systems define a generic resource which can be used to register arbitrary resources with a transaction, the JTA is much more XA specific. The <interfacename>javax.transaction.xa.XAResource</interfacename> interface is a Java mapping of the <interfacename>XA</interfacename> interface. The <interfacename>XAResource</interfacename> interface defines the contract between a Resource Manager and a Transaction Manager in a distributed transaction processing environment. A resource adapter for a resource manager implements the <interfacename>XAResource</interfacename> interface to support association of a top-level transaction to a resource such as a relational database.
+		</para>
+		<para>
+			The <interfacename>XAResource</interfacename> interface can be supported by any transactional resource adapter that is intended to be used in an environment where transactions are controlled by an external transaction manager, for example, a database management system. An application may access data through multiple database connections. Each database connection is associated with an <code>XAResource</code> object that serves as a proxy object to the underlying resource manager instance. The transaction manager obtains an <code>XAResource</code> for each resource manager participating in a top-level transaction. It uses the start method to associate the transaction with the resource, and it uses the end method to disassociate the transaction from the resource.
+		</para>
+		<para>
+			The resource manager is responsible for associating the transaction with all work performed on its data between the start and end invocations. At transaction commit time, these transactional resource managers are informed by the transaction manager to prepare, commit, or rollback the transaction according to the two-phase commit protocol.
+		</para>
+		<para>
+			In order to be better integrated with Java, the <interfacename>XAResource</interfacename> differs from the standard <interfacename>XA</interfacename> interface in the following ways:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The resource manager initialization is done implicitly by the resource adapter when the resource (connection) is acquired. There is no <code>xa_open</code> equivalent.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<code>Rmid</code> is not passed as an argument. Each <code>Rmid</code> is represented by a separate <code>XAResource</code> object.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Asynchronous operations are not supported because Java supports multi-threaded processing and most databases do not support asynchronous operations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Error return values that are caused by the transaction manager’s improper handling of the <code>XAResource</code> object are mapped to Java exceptions via the <classname>XAException</classname> class.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The DTP concept of <emphasis>Thread of Control</emphasis> maps to all Java threads that are given access to the <code>XAResource</code> and <code>Connection</code> objects. For example, it is legal for two different threads to perform the start and end operations on the same <code>XAResource</code> object.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_XAResource_Interface-Extended_XAResource_control">
+			<title>Extended XAResource control</title>
+			<para>
+				By default, whenever an <code>XAResource</code> object is registered with a JTA compliant transaction service, you have no control over the order in which it will be invoked during the two-phase commit protocol, with respect to other <code>XAResource</code> objects. In JBossTS, however, there is support for controlling the order via the two interfaces <interfacename>com.arjuna.ats.jta.resources.StartXAResource</interfacename> and <interfacename>com.arjuna.ats.jta.resources.EndXAResource</interfacename>. By inheriting your <code>XAResource</code> instance from either of these interfaces, you control whether an instance of your class will be invoked first or last, respectively.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				Only one instance of each interface type may be registered with a specific transaction.
+			</para>
+		</note>
+		<para>
+			In the TxCore manual we discussed the Last Resource Commit optimization (LRCO), whereby a single resource that is only one-phase aware (does not support prepare), can be enlisted with a transaction that is manipulating two-phase aware participants. This optimization is also supported within the JTA aspects of JBossTS.
+		</para>
+		<para>
+			In order to use the LRCO, your <interfacename>XAResource</interfacename> implementation must extend the <interfacename>com.arjuna.ats.jta.resources.LastResourceCommitOptimisation</interfacename> marker interface (it provides no methods). When enlisting the resource via Transaction.enlistResource, JBossTS will ensure that only a single instance of this type of participant is used within each transaction. Your resource will be driven last in the commit protocol: no invocation of prepare will occur.
+		</para>
+		<note>
+			<para>
+				By default an attempt to enlist more than one instance of a <classname>LastResourceCommitOptimisation</classname> class will fail and false will be returned from <methodname>Transaction.enlistResource</methodname>. This behaviour can be overridden by setting the <property>com.arjuna.ats.jta.allowMultipleLastResources</property> to true. However, before doing so you should read the Section on enlisting multiple one-phase aware resources.
+			</para>
+		</note>
+		<para>
+			In order to utilize the LRCO in a distributed environment, it is necessary to disable interposition support. It is still possible to use implicit context propagation.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_XAResource_Interface-Enlisting_multiple_one_phase_aware_resources">
+			<title>Enlisting multiple one-phase aware resources</title>
+			<para>
+				As discussed in the Transaction Core documentation, in order to guarantee consistency (atomicity) of outcome between multiple participants (resources) within the same transaction, the two-phase commit protocol is used with a durable transaction log. In the case of possessing a single one-phase aware resource, it is still possible to achieve an atomic (all of nothing) outcome across resources by utilizing the Last Resource Commit Optimization, as explained earlier.
+			</para>
+		</formalpara>
+		<para>
+			However, there may be situations where multiple one-phase aware resources are enlisted within the same transaction. For example, a legacy database running within the same transaction as a legacy JMS implementation. In these situations it is not possible to achieve atomicity of transaction outcome across multiple resources because none of them enter the prepare (waiting for final outcome) state: they commit or rollback immediately when instructed by the transaction coordinator, without knowledge of other resource states and without any way of undoing should subsequent resources make a different choice. This can result in data corruption or heuristic outcomes.
+		</para>
+		<para>
+			In these situations we recommend one of the following approaches:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Wrap the resources in compensating transactions. See the Web Services transactions guides for further details.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Migrate the legacy implementations to two-phase aware equivalents.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			In the cases where neither of these options are viable, JBossTS does support the enlistment of multiple one-phase aware resources within the same transaction. In order to do this, see the section on the Last Resource Commit Optimization.
+		</para>
+		<important>
+			<para>
+				Even when this support is enabled, JBossTS will issue warnings when it detects that the option has been enabled ("You have chosen to enable multiple last resources in the transaction manager. This is transactionally unsafe and should not be relied upon.”) and when multiple one-phase resources are enlisted within the transaction (“This is transactionally unsafe and should not be relied on.”).
+			</para>
+		</important>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Opening_a_Resource_Manager">
+		<title>Opening a Resource Manager</title>
+		<para>
+			The X/Open <interfacename>XA</interfacename> interface requires that the transaction manager initialize a resource manager (xa_open) prior to any other xa_ calls. JTA requires initialization of a resource manager to be embedded within the resource adapter that represents the resource manager. The transaction manager does not need to know how to initialize a resource manager; it is only responsible for informing the resource manager about when to start and end work associated with a transaction and when to complete the transaction. The resource adapter is responsible for opening (initializing) the resource manager when the connection to the resource manager is established.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Closing_a_Resource_Manager">
+		<title>Closing a Resource Manager</title>
+		<para>
+			A resource manager is closed by the resource adapter as a result of destroying the transactional resource. A transaction resource at the resource adapter level is comprised of two separate objects:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					An <code>XAResource</code> object that allows the transaction manager to start and end the transaction association with the resource in use and to coordinate transaction completion process.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					A connection object that allows the application to perform operations on the underlying resource (for example, JDBC operations on an RDBMS).
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Once opened, the resource manager is kept open until the resource is released (closed) explicitly. When the application invokes the connection’s close method, the resource adapter invalidates the connection object reference that was held by the application and notifies the application server about the close. The transaction manager should invoke the <methodname>XAResource.end</methodname> method to disassociate the transaction from that connection.
+		</para>
+		<para>
+			The close notification allows the application server to perform any necessary cleanup work and to mark the physical XA connection as free for reuse, if connection pooling is in place.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Threads_of_control">
+		<title>Threads of control</title>
+		<para>
+			The X/Open <interfacename>XA</interfacename> interface specifies that the transaction association related xa calls must be invoked from the same thread context. This thread-of-control requirement is not applicable to the object-oriented component-based application run-time environment, in which application threads are dispatched dynamically at method invocation time. Different threads may be using the same connection resource to access the resource manager if the connection spans multiple method invocation. Depending on the implementation of the application server, different threads may be involved with the same <code>XAResource</code> object. The resource context and the transaction context may be operated independent of thread context. This means that it is possible for different threads to be invoking the start and end methods.
+		</para>
+		<para>
+			If the application server allows multiple threads to use a single <code>XAResource</code> object and the associated connection to the resource manager, it is the responsibility of the application server to ensure that there is only one transaction context associated with the resource at any point of time. Thus the <interfacename>XAResource</interfacename> interface requires that the resource managers be able to support the two-phase commit protocol from any thread context.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Transaction_association">
+		<title>Transaction association</title>
+		<para>
+			Transactions are associated with a transactional resource via the start method, and disassociated from the resource via the <methodname>end</methodname> method. The resource adapter is responsible for internally maintaining an association between the resource connection object and the <code>XAResource</code> object. At any given time, a connection is associated with a single transaction, or it is not associated with any transaction at all. Because JTA does not support nested transactions it is an error for the start method to be invoked on a connection that is currently associated with a different transaction.
+		</para>
+		<para>
+			Interleaving multiple transaction contexts using the same resource may be done by the transaction manager as long as start and end are invoked properly for each transaction context switch. Each time the resource is used with a different transaction, the method end must be invoked for the previous transaction that was associated with the resource, and start must be invoked for the current transaction context.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Externally_controlled_connections">
+		<title>Externally controlled connections</title>
+		<para>
+			For transactional application whose transaction states are managed by an application server, its resources must also be managed by the application server so that transaction association is performed properly. If an application is associated with a transaction, it is an error for the application to perform transactional work through the connection without having the connection’s resource object already associated with the global transaction. The application server must ensure that the <code>XAResource</code> object in use is associated with the transaction. This is done by invoking the <methodname>Transaction.enlistResource</methodname> method.
+		</para>
+		<para>
+			If a server side transactional application retains its database connection across multiple client requests, the application server must ensure that before dispatching a client request to the application thread, the resource is enlisted with the application’s current transaction context. This implies that the application server manages the connection resource usage status across multiple method invocations.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Resource_sharing">
+		<title>Resource sharing</title>
+		<para>
+			When the same transactional resource is used to interleave multiple transactions, it is the responsibility of the application server to ensure that only one transaction is enlisted with the resource at any given time. To initiate the transaction commit process, the transaction manager is allowed to use any of the resource objects connected to the same resource manager instance. The resource object used for the two-phase commit protocol does not need to have been involved with the transaction being completed.
+		</para>
+		<para>
+			The resource adapter must be able to handle multiple threads invoking the <interfacename>XAResource</interfacename> methods concurrently for transaction commit processing. For example, with reference to the code below, suppose we have a transactional resource <code>r1</code>. Global transaction <code>xid1</code> was started and ended with <code>r1</code>. Then a different global transaction <code>xid2</code> is associated with <code>r1</code>. In the meanwhile, the transaction manager may start the two phase commit process for <code>xid1</code> using <code>r1</code> or any other transactional resource connected to the same resource manager. The resource adapter needs to allow the commit process to be executed while the resource is currently associated with a different global transaction.
+		</para>
+<screen>
+XAResource xares = r1.getXAResource();
+	
+xares.start(xid1); // associate xid1 to the connection
+	
+..
+xares.end(xid1); // disassociate xid1 to the connection
+..
+xares.start(xid2); // associate xid2 to the connection
+..
+// While the connection is associated with xid2,
+// the TM starts the commit process for xid1
+status = xares.prepare(xid1);
+..
+xares.commit(xid1, false);
+</screen>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Local_and_global_transactions">
+		<title>Local and global transactions</title>
+		<para>
+			The resource adapter must support the usage of both local and global transactions within the same transactional connection. Local transactions are transactions that are started and coordinated by the resource manager internally. The <interfacename>XAResource</interfacename> interface is not used for local transactions. When using the same connection to perform both local and global transactions, the following rules apply:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The local transaction must be committed (or rolled back) before starting a global transaction in the connection.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The global transaction must be disassociated from the connection before any local transaction is started.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Transaction_timeouts">
+		<title>Transaction timeouts</title>
+		<para>
+			Timeout values can be associated with transactions in order to control their lifetime. If a transaction has not terminated (committed or rolled back) before the timeout value elapses, the transaction system will automatically roll it back. The <interfacename>XAResource</interfacename> interface supports a operation, which allows the timeout associated with the current transaction to be propagated to the resource manager and if supported, will override any default timeout associated with the resource manager. This can be useful when long running transactions may have lifetimes that would exceed the default and in which case, if the timeout were not altered, the resource manager would rollback before the transaction terminated and subsequently cause the transaction to roll back as well.
+		</para>
+		<para>
+			If no timeout value is explicitly set for a transaction, or a value of 0 is specified, then an implementation specific default value may be used. In the case of JBossTS, how this default value is set depends upon which JTA implementation you are using.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Local JTA: use the <property>com.arjuna.ats.arjuna.coordinator.defaultTimeout</property> property value and give a timeout in seconds. The default value is 60 seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					JTS: use the <property>com.arjuna.ats.jts.defaultTimeout</property> property value and give a timeout in seconds. The default value is 0, for instance, transactions do not timeout.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Unfortunately there are situations where imposing the same timeout as the transaction on a resource manager may not be appropriate. For example, if the system administrator wishes to have control over the lifetimes on resource managers and does not want to (or cannot) allow that control to be passed to some external entity. At present JBossTS supports an all-or-nothing approach to whether or not <methodname>setTransactionTimeout</methodname> is called on <interfacename>XAResource</interfacename> instances.
+		</para>
+		<para>
+			If the <property>com.arjuna.ats.jta.xaTransactionTimeoutEnabled</property> property is set to true (the default) then it will be called on all instances. Alternatively, the <methodname>setXATransactionTimeoutEnabled</methodname> method of <classname>com.arjuna.ats.jta.common.Configuration</classname> can be used.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Test-Dynamic_Registration">
+		<title>Dynamic Registration</title>
+		<para>
+			Dynamic registration is not supported in <interfacename>XAResource</interfacename> because of the following reasons:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					In the Java component-based application server environment, connections to the resource manager are acquired dynamically when the application explicitly requests a connection. These resources are enlisted with the transaction manager on a needed basis.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					If a resource manager requires a way to dynamically register its work to the global transaction, the implementation can be done at the resource adapter level via a private interface between the resource adapter and the underlying resource manager.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transaction_Recovery.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,153 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Transaction_Recovery">
+	<title>Transaction Recovery</title>
+	<para>
+	</para>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transaction_Recovery-Failure_recovery">
+		<title>Failure recovery</title>
+		<para>
+			During recovery, the Transaction Manager needs to be able to communicate to all resource managers that are in use by the applications in the system. For each resource manager, the Transaction Manager uses the <methodname>XAResource.recover</methodname> method to retrieve the list of transactions that are currently in a prepared or heuristically completed state. Typically, the system administrator configures all transactional resource factories that are used by the applications deployed on the system. An example of such a resource factory is the JDBC <code>XADataSource</code> object, which is a factory for the JDBC <code>XAConnection</code> objects.
+		</para>
+		<para>
+			Because <code>XAResource</code> objects are not persistent across system failures, the Transaction Manager needs to have some way to acquire the <code>XAResource</code> objects that represent the resource managers which might have participated in the transactions prior to the system failure. For example, a Transaction Manager might, through the use of JNDI lookup mechanism, acquire a connection from each of the transactional resource factories, and then obtain the corresponding <code>XAResource</code> object for each connection. The Transaction Manager then invokes the <methodname>XAResource.recover</methodname> method to ask each resource manager to return the transactions that are currently in a prepared or heuristically completed state.
+		</para>
+		<note>
+			<para>
+				When running XA recovery it is necessary to tell JBossTS which types of Xid it can recover. Each Xid that JBossTS creates has a unique node identifier encoded within it and JBossTS will only recover transactions and states that match a specified node identifier. The node identifier to use should be provided to JBossTS via a property that starts with the name <property>com.arjuna.ats.jta.xaRecoveryNode</property>; multiple values may be provided. A value of ‘*’ will force JBossTS to recover (and possibly rollback) all transactions irrespective of their node identifier and should be used with caution.
+			</para>
+		</note>
+		<para>
+			If using the JBossJTA JDBC 2.0 driver, then JBossJTA will take care of all <interfacename>XAResource</interfacename> crash recovery automatically. Otherwise one of the following recovery mechanisms will be used:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					If the <code>XAResource</code> is serializable, then the serialized form will be saved during transaction commitment, and used during recovery. It is assumed that the recreated <code>XAResource</code> is valid and can be used to drive recovery on the associated database.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</interfacename>, <interfacename>com.arjuna.ats.jta.recovery.XARecoveryResourceManager</interfacename> and <interfacename>com.arjuna.ats.jta.recovery.XARecoveryResource</interfacename> interfaces are used. These are documented in the JDBC chapters on failure recovery.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				In JBossTS 3.3 the interface <interfacename>XAConnectionRecovery</interfacename> was deprecated in favor of <interfacename>XAResourceRecovery</interfacename>. Users are encouraged to move to his new interface.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transaction_Recovery-Recovering_XAConnections">
+		<title>Recovering XAConnections</title>
+		<para>
+			When recovering from failures, JBossJTA requires the ability to reconnect to databases that were in use prior to the failures in order to resolve any outstanding transactions. Most connection information will be saved by the transaction service during its normal execution, and can be used during recovery to recreate the connection. However, it is possible that not all such information will have been saved prior to a failure (for example, a failure occurs before such information can be saved, but after the database connection is used). In order to recreate those connections it is necessary to provide implementations of the following JBossJTA interface <interfacename>com.arjuna.ats.jta.recovery.XAResourceRecovery</interfacename>, one for each database that may be used by an application.
+		</para>
+		<note>
+			<para>
+				If using the transactional JDBC 2.0 driver provided with JBossJTA, then no additional work is necessary in order to ensure that recovery occurs.
+			</para>
+		</note>
+		<para>
+			To inform the recovery system about each of the <code>XAResourceRecovery</code> instances, it is necessary to specify their class names through property variables. Any property variable found in the properties file, or registered at runtime, which starts with the name <property>com.arjuna.ats.jta.recovery.XAResourceRecovery</property> will be assumed to represent one of these instances, and its value should be the class name. For example:
+		</para>
+<screen>
+com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery
+</screen>
+		<para>
+			Additional information that will be passed to the instance when it is created may be specified after a semicolon:
+		</para>
+<screen>
+com.arjuna.ats.jta.recovery.XAResourceRecoveryOracle=com.foo.barRecovery;myData=hello
+</screen>
+		<note>
+			<para>
+				These properties need to go into the JTA section of the property file.
+			</para>
+		</note>
+		<para>
+			Any errors will be reported during recovery.
+		</para>
+<screen>
+public interface XAResourceRecovery
+{
+	public XAResource getXAResource () throws SQLException;
+	
+	public boolean initialise (String p);
+	
+	public boolean hasMoreResources ();
+};
+</screen>
+		<para>
+			Each method should return the following information:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<methodname>initialise</methodname>: once the instance has been created, any additional information which occurred on the property value (anything found after the first semi-colon) will be passed to the object. The object can then use this information in an implementation specific manner to initialise itself, for example.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>hasMoreResources</methodname>: each <code>XAResourceRecovery</code> implementation may provide multiple <code>XAResource</code> instances. Before any call to <methodname>getXAResource</methodname> is made, <methodname>hasMoreResources</methodname> is called to determine whether there are any further connections to be obtained. If this returns false, <methodname>getXAResource</methodname> will not be called again during this recovery sweep and the instance will not be used further until the next recovery scan.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<methodname>getXAResource</methodname>: returns an instance of the <code>XAResource</code> object. How this is created (and how the parameters to its constructors are obtained) is up to the <code>XAResourceRecovery</code> implementation. The parameters to the constructors of this class should be similar to those used when creating the initial driver or data source, and should obviously be sufficient to create new <code>XAResources</code> that can be used to drive recovery.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<para>
+				If you want your <code>XAResourceRecovery</code> instance to be called during each sweep of the recovery manager then you should ensure that once <methodname>hasMoreResources</methodname> returns false to indicate the end of work for the current scan it then returns true for the next recovery scan.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transaction_Recovery-Shipped_XAResourceRecovery_implementations">
+		<title>Shipped XAResourceRecovery implementations</title>
+		<para>
+			Recovery of <interfacename>XA</interfacename> datasources can sometimes be implementation dependant, requiring developers to provide their own <interfacename>XAResourceRecovery</interfacename> instances. However, JBossTS ships with several out-of-the-box implementations that may be useful.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<interfacename>com.arjuna.ats.internal.jdbc.recovery.OracleXARecovery</interfacename>: this expects an XML property file to be specified upon creation and from which it will read the database URL, username and password. For example:
+				</para>
+<screen>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	
+&lt;transaction-service&gt;
+	&lt;properties name="jdbc" type="system"&gt;
+		&lt;property name="DatabaseURL" value="jdbc:oracle:thin:@hostname:1521:sid"/&gt;
+		&lt;property name="UserName"    value="username"/&gt;
+		&lt;property name="Password"    value="password"/&gt;
+	&lt;/properties&gt;
+&lt;/transaction-service&gt;
+</screen>
+			</listitem>
+			<listitem>
+				<para>
+					<interfacename>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</interfacename>: this recovery implementation should work on any datasource that is exposed via JNDI. It expects an XML property file to be specified upon creation and from which it will read the database JNDI name, username and password. For example:
+				</para>
+<screen>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+	
+&lt;transaction-service&gt;
+	&lt;properties name="jdbc" type="system"&gt;
+		&lt;property name="DatabaseJNDIName" value="java:ExampleDS"/&gt;
+		&lt;property name="UserName"         value="username"/&gt;
+		&lt;property name="Password"         value="password"/&gt;
+	&lt;/properties&gt;
+&lt;/transaction-service&gt;
+</screen>
+			</listitem>
+		</itemizedlist>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Transactions.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,187 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Transactions">
+	<title>Transactions</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Transactions-The_API">
+		<title>The API</title>
+		<para>
+			The Java Transaction API consists of three elements: a high-level application transaction demarcation interface, a high-level transaction manager interface intended for application server, and a standard Java mapping of the X/Open XA protocol intended for transactional resource manager. All of the JTA classes and interfaces occur within the <package>javax.transaction</package> package, and the corresponding JBossJTA implementations within the <package>com.arjuna.ats.jta</package> package.
+		</para>
+		<important>
+			<para>
+				Each Xid that JBossTS creates must have a unique node identifier encoded within it and JBossTS will only recover transactions and states that match a specified node identifier. The node identifier to use should be provided to JBossTS via the <property>com.arjuna.ats.arjuna.xa.nodeIdentifier</property> property. You must make sure this value is unique across your JBossTS instances. If you do not provide a value, then JBossTS will fabricate one and report the value via the logging infrastructure. The contents of this should be alphanumeric.
+			</para>
+		</important>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-UserTransaction">
+			<title>UserTransaction</title>
+			<para>
+				The <interfacename>UserTransaction</interfacename> interface provides applications with the ability to control transaction boundaries. It has methods for beginning, committing, and rolling back top-level transactions: nested transactions are not supported, and begin throws the <code>NotSupportedException</code> when the calling thread is already associated with a transaction. <interfacename>UserTransaction</interfacename> automatically associates newly created transactions with the invoking thread.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				In JBossJTA, UserTransactions can be obtained from the static <methodname>com.arjuna.ats.jta.UserTransaction.userTransaction()</methodname> method.
+			</para>
+		</note>
+		<para>
+			In order to select the local JTA implementation it is necessary to perform the following steps:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					make sure the property <property>com.arjuna.ats.jta.jtaTMImplementation</property> is set to <property>com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</property>.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					1.make sure the property <property>com.arjuna.ats.jta.jtaUTImplementation</property> is set to <property>com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</property>.
+				</para>
+			</listitem>
+		</orderedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-TransactionManager">
+			<title>TransactionManager</title>
+			<para>
+				The <interfacename>TransactionManager</interfacename> interface allows the application server to control transaction boundaries on behalf of the application being managed.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				In JBossJTA, transaction manager implementations can be obtained from the static <methodname>com.arjuna.ats.jta.TransactionManager.transactionManager</methodname> method.
+			</para>
+		</note>
+		<para>
+			The Transaction Manager maintains the transaction context association with threads as part of its internal data structure. A thread’s transaction context is either null or it refers to a specific global transaction. Multiple threads may be associated with the same global transaction. As noted above, nested transactions are not supported.
+		</para>
+		<para>
+			Each transaction context is encapsulated by a Transaction object, which can be used to perform operations which are specific to the target transaction, regardless of the calling thread’s transaction context.
+		</para>
+		<para>
+			The <methodname>begin</methodname> method of <interfacename>TransactionManager</interfacename> starts a new top-level transaction and associates the transaction context with the calling thread. If the calling thread is already associated with a transaction then it throws the <code>NotSupportedException</code>.
+		</para>
+		<para>
+			The <methodname>getTransaction</methodname> method returns the Transaction object that represents the transaction context currently associated with the calling thread. This object can be used to perform various operations on the target transaction, described later.
+		</para>
+		<para>
+			The commit method is used to complete the transaction currently associated with the calling thread. After it returns, the calling thread is associated with no transaction. If commit is called when the thread is not associated with any transaction context, the TM throws an exception. In some implementation, the commit operation is restricted to the transaction originator only. If the calling thread is not allowed to commit the transaction, the TM throws an exception. JBossJTA does not currently impose any restriction on the ability of threads to terminate transactions.
+		</para>
+		<para>
+			The <methodname>rollback</methodname> method is used to rollback the transaction associated with the current thread. After the <methodname>rollback</methodname> method completes, the thread is associated with no transaction.
+		</para>
+		<note>
+			<para>
+				In a multi-threaded environment it is possible that multiple threads are active within the same transaction. If checked transaction semantics have been disabled, or the transaction times out, then it is possible for a transaction to be terminated by a thread other than the one that created it. In this case, it is often important that this information is communicated to the creator. JBossTS does this during commit or rollback by throwing <code>IllegalStateException</code>.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Suspending_and_resuming_a_transaction">
+			<title>Suspending and resuming a transaction</title>
+			<para>
+				The JTA supports the concept of a thread temporarily suspending and resuming transactions to enable it to perform non-transactional work. The suspend method is called to temporarily suspend the current transaction that is associated with the calling thread, i.e., so that the thread is no longer operating within its scope. If the thread is not associated with any transaction, a null object reference is returned; otherwise, a valid <code>Transaction</code> object is returned. The <code>Transaction</code> object can later be passed to the resume method to reinstate the transaction context.
+			</para>
+		</formalpara>
+		<para>
+			The <methodname>resume</methodname> method associates the specified transaction context with the calling thread. If the transaction specified is a valid transaction, the transaction context is associated with the calling thread; otherwise, the thread is associated with no transaction.
+		</para>
+		<note>
+			<para>
+				If <methodname>resume</methodname> is invoked when the calling thread is already associated with another transaction, the Transaction Manager throws the <code>IllegalStateException</code> exception.
+			</para>
+		</note>
+<screen>
+Transaction tobj = TransactionManager.suspend();
+	..
+TransactionManager.resume(tobj);
+</screen>
+		<note>
+			<para>
+				Some Transaction Manager implementations allow a suspended transaction to be resumed by a different thread. This feature is not required by JTA, but JBossJTA does support this.
+			</para>
+		</note>
+		<para>
+			When a transaction is suspended the application server must ensure that the resources in use by the application are no longer registered with the suspended transaction. When a resource is de-listed this triggers the Transaction Manager to inform the resource manager to disassociate the transaction from the specified resource object. When the application’s transaction context is resumed, the application server must ensure that the resources in use by the application are again enlisted with the transaction. Enlisting a resource as a result of resuming a transaction triggers the Transaction Manager to inform the resource manager to re-associate the resource object with the resumed transaction.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-The_Transaction_interface">
+			<title>The Transaction interface</title>
+			<para>
+				The <interfacename>Transaction</interfacename> interface allows operations to be performed on the transaction associated with the target object. Every top-level transaction is associated with one <code>Transaction</code> object when the transaction is created. The <code>Transaction</code> object can be used to:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Enlist the transactional resources in use by the application.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Register for transaction synchronization call backs.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Commit or rollback the transaction.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Obtain the status of the transaction.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The <methodname>commit</methodname> and <methodname>rollback</methodname> methods allow the target object to be committed or rolled back. The calling thread is not required to have the same transaction associated with the thread. If the calling thread is not allowed to commit the transaction, the transaction manager throws an exception. At present JBossJTA does not impose restrictions on threads terminating transactions.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Resource_enlistment">
+			<title>Resource enlistment</title>
+			<para>
+				Transactional resources such as database connections are typically managed by the application server in conjunction with some resource adapter and optionally with connection pooling optimization. In order for an external transaction manager to co-ordinate transactional work performed by the resource managers, the application server must enlist and de-list the resources used in the transaction. These resources (participants) are enlisted with the transaction so that they can be informed when the transaction terminates, for example, are driven through the two-phase commit protocol.
+			</para>
+		</formalpara>
+		<para>
+			As stated previously, the JTA is much more closely integrated with the XA concept of resources than the arbitrary objects. For each resource in-use by the application, the application server invokes the <methodname>enlistResource</methodname> method with an <code>XAResource</code> object which identifies the resource in use. See for details on how the implementation of the <code>XAResource</code> can affect recovery in the event of a failure.
+		</para>
+		<para>
+			The enlistment request results in the transaction manager informing the resource manager to start associating the transaction with the work performed through the corresponding resource. The transaction manager is responsible for passing the appropriate flag in its <methodname>XAResource.start</methodname> method call to the resource manager.
+		</para>
+		<para>
+			The <methodname>delistResource</methodname> method is used to disassociate the specified resource from the transaction context in the target object. The application server invokes the method with the two parameters: the <code>XAResource</code> object that represents the resource, and a flag to indicate whether the operation is due to the transaction being suspended (TMSUSPEND), a portion of the work has failed (TMFAIL), or a normal resource release by the application (TMSUCCESS).
+		</para>
+		<para>
+			The de-list request results in the transaction manager informing the resource manager to end the association of the transaction with the target <code>XAResource</code>. The flag value allows the application server to indicate whether it intends to come back to the same resource whereby the resource states must be kept intact. The transaction manager passes the appropriate flag value in its <methodname>XAResource.end</methodname> method call to the underlying resource manager.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Transaction_synchronization">
+			<title>Transaction synchronization</title>
+			<para>
+				Transaction synchronization allows the application server to be notified before and after the transaction completes. For each transaction started, the application server may optionally register a Synchronization call back object to be invoked by the transaction manager:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					The <methodname>beforeCompletion</methodname> method is called prior to the start of the two-phase transaction complete process. This call is executed in the same transaction context of the caller who initiates the <methodname>TransactionManager.commit</methodname> or the call is executed with no transaction context if <methodname>Transaction.commit</methodname> is used.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The <methodname>afterCompletion</methodname> method is called after the transaction has completed. The status of the transaction is supplied in the parameter. This method is executed without a transaction context.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-The_API-Transaction_equality">
+			<title>Transaction equality</title>
+			<para>
+				The transaction manager implements the Transaction object’s equals method to allow comparison between the target object and another Transaction object. The equals method should return true if the target object and the parameter object both refer to the same global transaction.
+			</para>
+		</formalpara>
+<screen>
+Transaction txObj = TransactionManager.getTransaction();
+Transaction someOtherTxObj = ..
+	..
+	
+boolean isSame = txObj.equals(someOtherTxObj);
+</screen>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/Using_JBossJTA_in_Application_Servers.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,91 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_JTA_Programmers_Guide-Using_JBossJTA_in_Application_Servers">
+	<title>Using JBossJTA in Application Servers</title>
+	<section id="sect-Transactions_JTA_Programmers_Guide-Using_JBossJTA_in_Application_Servers-JBoss_Application_Server">
+		<title>JBoss Application Server</title>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-Service_Configuration">
+			<title>Service Configuration</title>
+			<para>
+				The JBoss Transaction Service is configured primarily via the XML files stored in the etc directory, but when run as a JBOSS service there are a number of configurable attributes available. They are as follows:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					TransactionTimeout – The default transaction timeout to be used for new transactions. Specified as an integer in seconds.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					StatisticsEnabled – This determines whether or not the transaction service should gather statistical information. This information can then be viewed using the PerformanceStatistics MBean. Specified as a Boolean. The default is to not gather this information.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					PropagateFullContext – This determines whether a full transactional context is propagated by context importer/exporter. If set to false only the current transaction context is propagated. If set to true the full transaction context (including parent transactions) is propagated.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			These attributes are specified as MBean attributes in the jboss-service.xml file located in the server/all/conf directory, for example:
+		</para>
+<screen>
+&lt;mbean code="com.arjuna.ats.jbossatx.jts.TransactionManagerService" name="jboss:service=TransactionManager"&gt;
+		
+&lt;attribute name="TransactionTimeout"&gt;300&lt;/attribute&gt;
+&lt;attribute name="StatisticsEnabled&gt;true&lt;/attribute&gt;&gt;
+		
+&lt;/mbean&gt;
+</screen>
+		<para>
+			The transaction service is configurable also via the standard JBoss Transaction Service property files. These are located in the JBossTS install location under the etc sub-directory.
+		</para>
+		<para>
+			These files can be edited manually or through JMX. Each property file is exposed via an object with the name <code>com.arjuna.ts.properties</code> and an attribute of module where module is equal to the name of the module to be configured, for example, <code>com.arjuna.ts.properties:module=arjuna</code>.
+		</para>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-Logging">
+			<title>Logging</title>
+			<para>
+				In order to make JBossTS logging semantically consistent with JBossAS, the TransactionManagerService modifies the level of some log messages. This is achieved by overriding the value of the <property>com.arjuna.common.util.logger</property> property given in the <filename>jbossjta-properties.xml</filename> file. Therefore, the value of this property will have no effect on the logging behaviour when running embedded in JBossAS. By forcing use of the log4j_releveler logger, the TransactionManagerService causes all INFO level messages in the transaction code to be modified to behave as DEBUG messages. Therefore, these messages will not appear in log files if the filter level is INFO. All other log messages behave as normal.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-The_services">
+			<title>The services</title>
+			<para>
+				There is currently one service offered by the JBOSS integration called TransactionManagerService. Here we shall discuss what this service does.
+			</para>
+		</formalpara>
+		<para>
+			The transaction manager service’s main purpose is to ensure the recovery manager is started. It also binds the JBossTS JTA transaction manager to java:/TransactionManager name with the JNDI provider. This service depends upon the existence of the CORBA ORB Service and it must be using JacORB as the underlying ORB implementation.
+		</para>
+		<para>
+			There are two instances of this service:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					distributed: this uses the JTS enabled transaction manager implementation and hence supports distributed transactions and recovery. To configure this use the <classname>com.arjuna.ats.jbossatx.jts.TransactionManagerService</classname> class. This is the default configuration.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					local: this uses the purely local JTA implementation. To configure this use the <classname>com.arjuna.ats.jbossatx.jta.TransactionManagerService</classname> class.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_JTA_Programmers_Guide-JBoss_Application_Server-Ensuring_Transactional_Context_is_Propagated_to_the_Server">
+			<title>Ensuring Transactional Context is Propagated to the Server</title>
+			<para>
+				It is possible to coordinate transactions from a coordinator which is not located within the JBoss server (e.g. using transactions created by an external OTS server). To ensure the transaction context is propagated via JRMP invocations to the server, the transaction propagation context factory needs to be explicitly set for the JRMP invoker proxy. This is done as follows:
+			</para>
+		</formalpara>
+<screen>
+JRMPInvokerProxy.setTPCFactory( new com.arjuna.ats.internal.jbossatx.jts.PropagationContextManager() );
+</screen>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_JTA_Programmers_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/Makefile
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/Makefile	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/Makefile	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,11 @@
+#Makefile for Transactions_Web_Services_Programmers_Guide
+
+XML_LANG	= en-US
+
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<corpauthor>
+		Red Hat Documentation Group
+	</corpauthor>
+</authorgroup>
+


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Author_Group.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Book_Info.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Transactions_Web_Services_Programmers_Guide-Transactions_Web_Services_Programmers_Guide">
+	<title>JBoss Transactions Web Services Programmers Guide CP03</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.3 CP03</subtitle>
+	<edition>2.0</edition>
+	<pubsnumber>4</pubsnumber>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.3</productnumber>
+	<abstract>
+		<para>This book is about Programming for Transaction Web Services</para></abstract>
+	<corpauthor>
+		<inlinemediaobject>
+			<imageobject>
+				<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+			</imageobject>
+			<textobject>
+				<phrase>Logo</phrase>
+			</textobject>
+		</inlinemediaobject>
+	</corpauthor>
+	<copyright>
+		<year>&YEAR;</year>
+		<holder>&HOLDER;</holder>
+	</copyright>
+	<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</bookinfo>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Getting_Started.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,65 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Getting_Started">
+	<title>Getting Started</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Creating_and_deploying_participants">
+		<title>Creating and deploying participants</title>
+		<para>
+			A participant is a software entity which is driven by the transaction manager on behalf of a Web service. The creation of participants is non-trivial since they ultimately reflect the state of a Web service’s back-end processing facilities which is a function of an enterprise’s own IT infrastructure. The most that can be said about the implementation of a participant without getting into detail about the back-end systems it represents, or the details of the underlying transaction protocol is that implementations must implement one of the following interfaces, depending upon the protocol it will participate within: <code>com.arjuna.wst.Durable2PCParticipant</code>, <code>com.arjuna.wst.Volatile2PCParticipant</code>, or, <code>com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant</code>, <code>com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</code>.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Creating_Client_Applications">
+		<title>Creating Client Applications</title>
+		<para>
+			There are two aspects to a client application using XTS. The first is the transaction declaration aspects and the second is the business logic that the client application performs. The transaction declaration aspects are taken care of automatically with XTS’s client API. This API provides simple transaction directives like begin, commit, and rollback which the client application can use to initialize, manage, and terminate transactions. Under the covers, this API invokes (via SOAP) operations on the transaction manager.
+		</para>
+		<para>
+			When the client application performs invocations on business logic Web services, then XTS does not dictate an API for that purpose. However, there is a requirement that whatever API is chosen, the XTS context be inserted onto outgoing messages, and extracted and associated with the current thread for incoming messages. To make the user’s life easier, the XTS software comes complete with three sets of “filters” which can perform the task automatically. These filters are designed to work with JAX-RPC and webMethods client libraries.
+		</para>
+		<note>
+			<para>
+				If the user chooses to use a different SOAP client infrastructure, then the onus to perform client-side header processing rests with them. XTS does not provide client-side infrastructure for anything other than JAX-RPC or webMethods for this release.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Creating_Client_Applications-JAX_RPC_Context_Handlers">
+			<title>JAX-RPC Context Handlers</title>
+			<para>
+				In order to register the JAX-RPC server-side context handler with the deployed web services, a handler chain must be included in the web services deployment descriptor. Please refer to the demo application <filename>jboss/webservices.xml</filename> deployment descriptor for an example of how this can be achieved.
+			</para>
+		</formalpara>
+		<para>
+			In order to register the JAX-RPC client-side context handler used by the client applications, a handler chain must be included in the definition of the service-ref in the client web.xml deployment descriptor. Please refer to the demo application <filename>jboss/client-web-app.xml</filename> for an example of how this can be achieved.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Creating_Client_Applications-webMethods_Context_Handlers">
+			<title>webMethods Context Handlers</title>
+			<para>
+				In order to register the webMethods server-side context handler with the deployed web services, the inbound and outbound interceptors must be configured in the web services deployment descriptor. An example of how this can be configured can be found in the demo application, for example, the <filename>RestaurantServiceAT.xml</filename>.
+			</para>
+		</formalpara>
+		<para>
+			In order to register the webMethods client-side context handler, the inbound and outbound interceptors must be configured in the <filename>glue-config.xml</filename> deployment descriptor. Please refer to the soap interceptor section of the demo application glue-config.xml for an example of how this can be achieved.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Hints_and_tips">
+		<title>Hints and tips</title>
+		<para>
+			If you want to create multiple JBoss deploys on the same machine, then you may wish to look at <ulink url="http://www.yorku.ca/dkha/jboss/docs/MultipleInstances.htm"><emphasis>Setting up multiple instances</emphasis></ulink> for information on what is required.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Getting_Started-Summary">
+		<title>Summary</title>
+		<para>
+			This chapter has provided a high-level overview of how to use each of the major software pieces of the Web Services transactions component of JBossTS. The Web Services transaction manager provided by JBossTS is the hub of the architecture and is the only piece of software that users’ software does not bind to directly. XTS provides header processing infrastructure for dealing with Web Services transactions contexts for both users’ client applications and Web services. For developing transaction participants, XTS provides a simple interface plus the necessary document handling code.
+		</para>
+		<para>
+			This chapter is meant as an overview only, and is unlikely to answer questions on more difficult and subtle aspects. For fuller explanations of the components, please refer to the appropriate chapter elsewhere in this document.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Introduction.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,83 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Introduction">
+	<title>Introduction</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Introduction-JBossTS_Web_Services_transactions_overview">
+		<title>JBossTS Web Services transactions overview</title>
+		<para>
+			The XML transaction service component of JBossTS (shorthand referred to as XTS) supports the coordination of private and public Web services in a business transaction. Therefore, to understand XTS, you must be familiar with Web services, and also understand a little about transactions. This chapter introduces XTS and provides a brief overview of the technologies that form the Web services standard. Additionally, this chapter explores some of the fundamentals of transactioning technology and how it can be applied to Web services. Much of the content presented in this chapter is detailed throughout this guide; however, only overview information about Web services is provided. If you are new to creating Web services, please see consult your Web services platform documentation.
+		</para>
+		<para>
+			JBossTS provides as the XTS component a transaction solution for Web services. Using XTS, business partners can coordinate complex business transactions in a controlled and reliable manner. The JBossTS Web Services API supports a transactional coordination model based on the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-C is a generic coordination framework developed by IBM, Microsoft and BEA, WS-Atomic Transaction and WS-Business Activity are transaction protocols that utilize this framework.
+		</para>
+		<para>
+			Web services are modular, reusable software components that are created by exposing business functionality through a Web service interface. Web services communicate directly with other Web services using standards-based technologies such as SOAP and HTTP. These standards-based communication technologies allow Web services to be accessed by customers, suppliers, and trading partners, independent of hardware operation system or programming environment. The result is a vastly improved collaboration environment as compared to today&#39;s EDI and business-to-business (B2B) solutions—an environment where businesses can expose their current and future business applications as Web services that can be easily discovered and accessed by external partners.
+		</para>
+		<para>
+			Web services, by themselves, are not fault tolerant. In fact, some of the reasons that make it an attractive development solution are also the same reasons that service-based applications may have drawbacks:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Application components that are exposed as Web services may be owned by third parties, which provides benefits in terms of cost of maintenance, but drawbacks in terms of having exclusive control over their behavior;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Web services are usually remotely located which increases risk of failure due to increased network travel for invocations.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Applications that have high dependability requirements, must find a method of minimizing the effects of errors that may occur when an application consumes Web services. One method of safeguarding against such failures is to interact with an application’s Web services within the context of a transaction. A transaction is simply a unit of work which is completed entirely, or in the case of failures is reversed to some agreed consistent state – normally to appear as if the work had never occurred in the first place. With XTS, transactions can span multiple Web services which mean that work performed across multiple enterprises can be managed with transactional support.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-Managing_Service_Based_Processes">
+			<title>Managing Service-Based Processes</title>
+			<para>
+				XTS allows you to create transactions that drive complex business processes spanning multiple Web services. Current Web services standards do not address the requirements for a high-level coordination of services since in today’s Web services applications, which use single request/receive interactions, coordination is typically not a problem. However, for applications that engage multiple services among multiple business partners, coordinating and controlling the resulting interactions is essential. This becomes even more apparent when you realize that you generally have little in the way of formal guarantees when interacting with third-party Web services.
+			</para>
+		</formalpara>
+		<para>
+			XTS provides the infrastructure for coordinating services during a business process. By organizing processes as transactions, business partners can collaborate on complex business interactions in a reliable manner, insuring the integrity of their data - usually represented by multiple changes to a database – but without the usual overheads and drawbacks of directly exposing traditional transaction-processing engines directly onto the web. The following example demonstrates how an application may manage service-based processes as transactions:
+		</para>
+		<para>
+			The application in question allows a user to plan a social evening. This application is responsible for reserving a table at a restaurant, and reserving tickets to a show. Both activities are paid for using a credit card. In this example, each service represents exposed Web services provided by different service providers. XTS is used to envelop the interactions between the theater and restaurant services into a single (potentially) long-running business transaction. The business transaction must insure that seats are reserved both at the restaurant and the theater. If one event fails the user has the ability to decline both events, thus returning both services back to their original state. If both events are successful, the user’s credit card is charged and both seats are booked. As you may expect, the interaction between the services must be controlled in a reliable manner over a period of time. In addition, management must span several third-party services that are !
 remotely deployed.
+		</para>
+		<note>
+			<para>
+				Without the backing of a transaction, an undesirable outcome may occur. For example, the user credit card may be charged, even though one or both of the bookings may have failed.
+			</para>
+		</note>
+		<para>
+			This simple example describes the situations where XTS excels at supporting business processes across multiple enterprises. This example is further refined throughout this guide, and appears as a standard demonstrator (including source code) with the XTS distribution.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-Servlets">
+			<title>Servlets</title>
+			<para>
+				The WS-C, WS-Atomic Transaction and WS-Business Activity protocols are based on one-way interactions of entities rather than traditional synchronous request/response RPC style interactions. Entities (for example, transaction participants) invoke operations on other entities (for example, the transaction coordinator) in order to return responses to requests. What this means is that the programming model is based on peer-to-peer relationships, with the result that all services, whether they are participants, coordinators or clients, must have an active component that allows them to receive unsolicited messages.
+			</para>
+		</formalpara>
+		<para>
+			In the current implementation of XTS, the active component is achieved through the use of Java servlet technology. Each endpoint that can be communicated with via SOAP/XML is represented as a servlet (and published within JNDI). Fortunately for the developer, this use of servlets occurs transparently. The only drawback is that (currently) clients must reside within a domain capable of hosting servlets, i.e., an application server. It is our intention that future versions of XTS will provide configurable deployment options, allowing servlets where required, but not mandating them.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-SOAP">
+			<title>SOAP</title>
+			<para>
+				SOAP has emerged as the de-facto message format for XML-based communication in the Web services arena. It is a lightweight protocol that allows the user to define the content of a message and to provide hints as to how recipients should process that message.
+			</para>
+		</formalpara>
+		<para>
+			SOAP messages can be divided into two main categories: Remote Procedure Call (RPC) and Document Exchange (DE). The primary difference between the two categories is that the SOAP specification defines encoding rules and conventions for RPC. The document exchange model allows the exchange of arbitrary XML documents - a key ingredient of B2B document exchange. XTS is based on the loosely coupled document-exchange style, yet it can support transactions spanning Web service that use either document-exchange or RPC.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-JBossTS_Web_Services_transactions_overview-Web_Services_Description_Language_WSDL">
+			<title>Web Services Description Language (WSDL)</title>
+			<para>
+				WSDL is an XML-based language used to define Web service interfaces. An application that consumes a Web service parses the service’s WSDL document to discover the location of the service, the operations that the service supports, the protocol bindings the service supports (SOAP, HTTP, etc), and how to access them (for each operation, WSDL describes the format that the client must follow).
+			</para>
+		</formalpara>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.ent
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.ent	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.ent	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,5 @@
+<!ENTITY PRODUCT "Enterprise Application Platform">
+<!ENTITY BOOKID "Transactions_Web_Services_Programmers_Guide">
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY YEAR "2008">
+<!ENTITY VERSION "4.3.0.CP01">

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/JBoss_Transactions_Web_Services_Programmers_Guide_CP03.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include> 
+	<xi:include href="Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactions_Overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Getting_Started.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactional_Web_Services.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Participants.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Stand-alone_Coordinator.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="The_XTS_API.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+
+</book>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Participants.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,249 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Test">
+	<title>Test</title>
+	<para>
+		This is a test paragraph
+	</para>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Test-The_Participant_an_Overview">
+		<title>The Participant: an Overview</title>
+		<para>
+			The participant is the entity that performs the work pertaining to transaction management on behalf of the business services involved in an application. The Web service (for example, a theatre booking system) contains some business logic for reserving a seat, enquiring availability etc, but it will need to be supported by something that maintains information in a durable manner. Typically this will be a database, but it could be a file system, NVRAM, etc. Now, although the service may talk to the back-end database directly, it cannot commit or undo any changes it (the services) makes, since these are ultimately under the control of the transaction that scoped the work. In order for the transaction to be able to exercise this control, it must have some contact with the database. In XTS this is accomplished by the participant, and the role played by the participant between the transaction and back-end transaction processing infrastructure is shown in the following figure.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Transaction_Control.png" format="PNG" />
+			</imageobject>
+			<caption>Transactions, Participants, and Back-End Transaction Control</caption>
+		</mediaobject>
+		<para>
+			Each participant in XTS is related to either the Atomic Transaction or Business Activity protocols. In the following sections we’ll consider both protocols and their respective participants.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Atomic_Transaction">
+			<title>Atomic Transaction</title>
+			<para>
+				All Atomic Transaction participants are instances of one of the following interfaces.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Durable2PCParticipant">
+			<title>Durable2PCParticipant</title>
+			<para>
+				This participant supports the WS-Atomic Transaction Durable2PC protocol with the following signatures, as per the <interfacename>com.arjuna.wst.Durable2Participant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>prepare</emphasis>: the participant should perform any work necessary to allow it to either commit or rollback the work performed by the Web service under the scope of the transaction. The implementation is free to do whatever it needs to in order to fulfill the implicit contract between it and the coordinator. The participant is expected to indicate whether it can prepare or not by returning an instance of the <code>com.arjuna.wst.Vote</code>. Values are: <code>ReadOnly</code>, indicating the participant does not need to be informed of the transaction outcome as no state updates were made; Prepared, indicating the participant is prepared to commit or rollback depending on the final transaction outcome, and it has made sufficient state updates persistent to accomplish this; and Aborted, indicating the participant has aborted and the transaction should also attempt to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commit</emphasis>: the participant should make permanent the work that it controls. What it does will depend upon its implementation, for example, commit the reservation of the theatre ticket. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>rollback</emphasis>: the participant should undo the work that it controls. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commitOnePhase</emphasis>: if there is only a single TwoPCParticipant registered with the transaction, then the coordinator can optimize the protocol and simply tell the participant to commit: there is no need for a preparatory phase since consensus is implicit.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: during recovery the participant can inquire as to the status of the transaction it was registered with. If that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: during recovery the participant can enquire as to the status of the transaction it was registered with. If an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Volatile2PCParticipant">
+			<title>Volatile2PCParticipant</title>
+			<para>
+				This participant supports the WS-Atomic Transaction Volatile2PC protocol with the following signatures, as per the <interfacename>com.arjuna.wst.Volatile2Participant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>prepare</emphasis>: the participant should perform any work necessary to allow it to either commit or rollback the work performed by the Web service under the scope of the transaction. The implementation is free to do whatever it needs to in order to fulfill the implicit contract between it and the coordinator. The participant is expected to indicate whether it can prepare or not by returning an instance of the com.arjuna.wst.Vote. Values are: ReadOnly, indicating the participant does not need to be informed of the transaction outcome as no state updates were made; Prepared, indicating the participant is prepared to commit or rollback depending on the final transaction outcome, and it has made sufficient state updates persistent to accomplish this; and Aborted, indicating the participant has aborted and the transaction should also attempt to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commit</emphasis>: the participant should make permanent the work that it controls. What it does will depend upon its implementation, for example, commit the reservation of the theatre ticket. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>rollback</emphasis>: the participant should undo the work that it controls. The participant will then return an indication of whether or not it succeeded.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>commitOnePhase</emphasis>: if there is only a single TwoPCParticipant registered with the transaction, then the coordinator can optimize the protocol and simply tell the participant to commit: there is no need for a preparatory phase since consensus is implicit.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: during recovery the participant can inquire as to the status of the transaction it was registered with. If that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: during recovery the participant can enquire as to the status of the transaction it was registered with. If an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-Business_Activity">
+			<title>Business Activity</title>
+			<para>
+				All Business Activity participants are instances of the following interfaces.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-BusinessAgreementWithParticipantCompletion">
+			<title>BusinessAgreementWithParticipantCompletion</title>
+			<para>
+				This participant supports the WS-T <code>BusinessAgreementWithParticipantCompletion</code> protocol with the following signatures, as per the <interfacename>com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>close</emphasis>: the transaction has completed successfully. The participant previously informed the coordinator that it was ready to complete.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>cancel</emphasis>: the transaction has canceled, and the participant should undo any work. The participant cannot have informed the coordinator that it has completed.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>compensate</emphasis>: the transaction has canceled. The participant previously informed the coordinator that it had finished work but could compensate later if required, so it is now requested to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>status</emphasis>: return the status of the participant.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: if the participant inquires as to the status of the transaction it was registered with and that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: if the participant enquired as to the status of the transaction it was registered with and an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-BusinessAgreementWithCoordinatorCompletion">
+			<title>BusinessAgreementWithCoordinatorCompletion</title>
+			<para>
+				This participant supports the WS-T <code>BusinessAgreementWithCoordinatorCompletion</code> protocol with the following signatures, as per the <interfacename>com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant</interfacename> interface:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>close</emphasis>: the transaction has completed successfully. The participant previously informed the coordinator that it was ready to complete.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>cancel</emphasis>: the transaction has canceled, and the participant should undo any work.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>compensate</emphasis>: the transaction has canceled. The participant previously informed the coordinator that it had finished work but could compensate later if required, so it is now requested to do so.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>complete</emphasis>: the coordinator is informing the participant that all work it needs to do within the scope of this business activity has been received.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>status</emphasis>: return the status of the participant.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>unknown</emphasis>: if the participant inquires as to the status of the transaction it was registered with and that transaction is no longer available (has rolled back) then this operation will be invoked by the coordination service.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>error</emphasis>: if the participant enquired as to the status of the transaction it was registered with and an error occurs (for example, the transaction service is unavailable) then this operation will be invoked.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-The_Participant_an_Overview-BAParticipantManager">
+			<title>BAParticipantManager</title>
+			<para>
+				In order for the Business Activity protocol to work correctly, the participants must be able to autonomously signal the coordinator that they have left the activity (exited) or are ready to complete and (if necessary) compensate (completed). Unlike the Atomic Transaction protocol, where all interactions between the coordinator and participants are instigated by the coordinator when the transaction terminates, this interaction pattern requires the participant to be able to talk to the coordinator at any time during the lifetime of the business activity.
+			</para>
+		</formalpara>
+		<para>
+			As such, whenever a participant is registered with a business activity, it receives a handle on the coordinator. This handle is an instance of the <interfacename>BAParticipantManager</interfacename> interface, located in <code>com.arjuna.wst.BAParticipantManager</code>, with the following methods:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>exit</emphasis>: the participant has exited the business activity. The participant uses this to inform the coordinator that is has left the activity. It will not be informed when (and how) the business activity terminates.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>completed</emphasis>: the participant has completed it works, but wishes to continue in the business activity, so that it will eventually be told when (and how) the activity terminates. The participant may later be asked to compensate for the work it has done.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>fault</emphasis>: the participant encountered an error during normal activation and has compensated. This places the business activity into a mandatory cancel-only mode.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Test-Participant_Creation_and_Deployment">
+		<title>Participant Creation and Deployment</title>
+		<para>
+			As has been shown, the participant provides the plumbing that drives the transactional aspects of the service. This section discusses the specifics of Participant programming and usage.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Participant_Creation_and_Deployment-Implementing_Participants">
+			<title>Implementing Participants</title>
+			<para>
+				Implementing a participant is, in theory, a relatively straightforward task, though depending on the complexity of the transactional infrastructure that the participant is to manage, the actual size and complexity of a participant will vary. The participant interfaces can be found under <code>com.arjuna.wst</code>. Your implementation must implement one of these interfaces.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Participant_Creation_and_Deployment-Deploying_Participants">
+			<title>Deploying Participants</title>
+			<para>
+				In order to allow Participants to be located remote from the Transaction Manager, XTS includes transparent message routing functionality. The Participant classes are not exposed directly as web services, but rather registered with a web service which receives messages from the Transaction Manager and maps them to appropriate method invocations on the relevant Participant instance. Transactional web services will typically enroll a new Participant instance of the desired type for each new transaction. A unique identifier must be provided at enrollment time and will be used to map transaction protocol messages to the appropriate participant instance. Note that Participant method invocations do not occur in a specific transaction context. Therefore, if your Participant implementation requires knowledge of the transaction context (for example, to look up state information in a persistent store) then you should provide this to the Participant instance, typically as an argume!
 nt to the constructor function. Sample Participant implementations and usage can be found in the demonstration application included with XTS.
+			</para>
+		</formalpara>
+		<para>
+			Any application code which creates and enrolls Participants must be deployed along with the parts of XTS necessary for receiving and processing incoming messages from the Transaction Manager. This typically means including the appropriate XTS .jar, .wsr and .war files in your application. If you are deploying your application only a server which does not already contain a Transaction Manger installation, you will also need to deploy the XTS configuration files.
+		</para>
+		<note>
+			<para>
+				In early access releases of the XTS product, the Transaction Manager and participant management functions are not provided as separable components. Configuration and deployment of the participant infrastructure is therefore as in the Transaction Manger section above. More flexible deployment of the XTS components will be available in the final release.
+			</para>
+		</note>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Preface.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,14 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="pref-Transactions_Web_Services_Programmers_Guide-Preface">
+	<title>Preface</title>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> 
+	<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include> 
+</preface>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Revision_History.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Publican-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date></date>
+				<author>
+					<firstname></firstname>
+					<surname></surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member></member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Stand-alone_Coordinator.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,15 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Stand_alone_Coordinator">
+	<title>Stand-alone Coordinator</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Stand_alone_Coordinator-Introduction">
+		<title>Introduction</title>
+		<para>
+			For configuring a stand-alone Web Services transaction coordinator, see the relevant chapter in the System Administrator’s Guide.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/The_XTS_API.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,215 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-The_XTS_API">
+	<title>The XTS API</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-The_XTS_API-Introduction">
+		<title>Introduction</title>
+		<para>
+			This chapter shows how to use the XTS API. This is of use both at the client-side where applications consume transactional Web services, and at the service/participant side where transactions need to be coordinated with back-end systems.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-The_XTS_API-API_for_the_Atomic_Transaction_protocol">
+		<title>API for the Atomic Transaction protocol</title>
+		<para>
+			The following classes and interfaces are located within the <package>com.arjuna.wst or com.arjuna.mw.wst</package> packages and sub-packages.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-Vote">
+			<title>Vote</title>
+			<para>
+				During the two-phase commit protocol, a participant will be asked to vote on whether or not it can prepare to confirm the work that it controls. It must return one of the following subtypes of <code>com.arjuna.wst.Vote</code>:
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>Prepared</emphasis>: the participant indicates that it can prepare if asked to by the coordinator. It will not have committed at this stage however, since it does not know what the final outcome will be.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>Aborted</emphasis>: the participant indicates that it cannot prepare and has in fact rolled back. The participant should not expect to get a second phase message.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>ReadOnly</emphasis>: the participant indicates that the work it controls has not made any changes to state that require it to be informed of the final outcome of the transaction. Essentially the participant is resigning from the transaction.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Thus a possible implementation of a 2PC participant’s prepare method may resemble the following:
+		</para>
+<screen>
+public Vote prepare () throws WrongStateException, SystemException
+{
+	// Some participant logic here
+	
+	if(/* some condition based on the outcome of the business logic */)
+	{
+		// Vote to confirm
+		return new com.arjuna.wst.Prepared();
+	}
+	else if(/*some other condition based on the outcome of the business logic*/)
+	{
+		// Resign
+		return new com.arjuna.wst.ReadOnly();
+	}
+	else
+	{
+		// Vote to cancel
+		return new com.arjuna.wst.Aborted();
+	}
+}
+</screen>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-The_transaction_context">
+			<title>The transaction context</title>
+			<para>
+				A transaction is typically represented by some unique identifier and a reference to the coordinator which manages the transaction, for example, a URL. XTS allows transactions to be nested such that a transaction hierarchy (tree) may be formed. Thus, a transaction context may be a set of transactions, with the top-most transaction the root parent (superior).
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-TxContext">
+			<title>TxContext</title>
+			<para>
+				<code>com.arjuna.mw.wst.TxContext</code> is an opaque representation of a transaction context.
+			</para>
+		</formalpara>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>valid</emphasis>: this indicates whether or not the contents are valid.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>equals</emphasis>: can be used to compare two instances.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-UserTransaction">
+			<title>UserTransaction</title>
+			<para>
+				The <classname>com.arjuna.wst.UserTransaction</classname> is the class that most users (for example, clients and services) will see. This isolates them from the underlying protocol-specific aspects of the XTS implementation. Importantly, a UserTransaction does not represent a specific transaction, but rather is responsible for providing access to an implicit per-thread transaction context; it is similar to the UserTransaction in the JTA specification. Therefore, all of the UserTransaction methods implicitly act on the current thread of control.
+			</para>
+		</formalpara>
+		<para>
+			A new transaction is begun and associated with the invoking thread by using the begin method. If there is already a transaction associated with the thread then the <code>WrongStateException</code> exception is thrown. Upon success, this operation associates the newly created transaction with the current thread.
+		</para>
+		<para>
+			The transaction is committed by the commit method. This will execute the Volatile2PC and Durable2PC protocols prior to returning. If there is no transaction associated with the invoking thread then <code>UnknownTransactionException</code> is thrown. If the transaction ultimately rolls back then the <code>TransactionRolledBackException</code> is thrown. When complete, this operation disassociates the transaction from the current thread such that it becomes associated with no transaction.
+		</para>
+		<para>
+			The <code>rollback</code> operation will terminate the transaction and return normally if it succeeded, while throwing an appropriate exception if it didn’t. If there is no transaction associated with the invoking thread then <code>UnknownTransactionException</code> is thrown.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-UserTransactionFactory">
+			<title>UserTransactionFactory</title>
+			<para>
+				UserTransactions are obtained from a <code>UserTransactionFactory</code>.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-TransactionManager">
+			<title>TransactionManager</title>
+			<para>
+				The <interfacename>TransactionManager</interfacename> interface represents the service/container/participant’s (service-side users) typical way in which to interact with the underlying transaction service implementation. As with <interfacename>UserTransaction</interfacename> a <interfacename>TransactionManager</interfacename> does not represent a specific transaction, but rather is responsible for providing access to an implicit per-thread transaction context.
+			</para>
+		</formalpara>
+		<para>
+			A thread of control may require periods of non-transactionality so that it may perform work that is not associated with a specific transaction. In order to do this it is necessary to disassociate the thread from any transactions. The suspend method accomplishes this, returning a <code>TxContext</code> instance, which is a handle on the transaction. The thread is then no longer associated with any transaction.
+		</para>
+		<para>
+			The <methodname>resume</methodname> method can be used to (re-)associate a thread with a transaction(s) via its <code>TxContext</code>. Prior to association, the thread is disassociated with any transaction(s) with which it may be currently associated. If the <code>TxContext</code> is null, then the thread is associated with no transaction. The <code>UnknownTransactionException</code> exception is thrown if the transaction that the <code>TxContext</code> refers to is invalid in the scope of the invoking thread.
+		</para>
+		<para>
+			The <methodname>currentTransaction</methodname> method returns the <code>TxContext</code> for the current transaction, or null if there is none. Unlike suspend, this method does not disassociate the current thread from the transaction(s). This can be used to enable multiple threads to execute within the scope of the same transaction.
+		</para>
+		<para>
+			In order to register and resign participants with a transaction, the container or participant must use:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>enlistForVolatileTwoPhase</emphasis>: enlist the specified participant with current transaction such that it will participate in the Volatile2PC protocol; a unique identifier for the participant is also required. If there is no transaction associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the transaction is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>enlistForDurableTwoPhase</emphasis>: enlist the specified participant with current transaction such that it will participate in the 2PC protocol; a unique identifier for the participant is also required. If there is no transaction associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the transaction is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Atomic_Transaction_protocol-TransactionFactory">
+			<title>TransactionFactory</title>
+			<para>
+				TransactionManagers are obtained from a <code>TransactionFactory</code>.
+			</para>
+		</formalpara>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-The_XTS_API-API_for_the_Business_Activity_protocol">
+		<title>API for the Business Activity protocol</title>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-UserBusinessActivity">
+			<title>UserBusinessActivity</title>
+			<para>
+				The <classname>com.arjuna.wst.UserBusinessActivity</classname> is the class that most users (for example, clients and services) will see. This isolates them from the underlying protocol-specific aspects of the XTS implementation. Importantly, a <code>UserBusinessActivity</code> does not represent a specific business activity, but rather is responsible for providing access to an implicit per-thread activity. Therefore, all of the <code>UserBusinessActivity</code> methods implicitly act on the current thread of control.
+			</para>
+		</formalpara>
+		<para>
+			A new business activity is begun and associated with the invoking thread by using the begin method. If there is already an activity associated with the thread then the <code>WrongStateException</code> exception is thrown. Upon success, this operation associates the newly created activity with the current thread.
+		</para>
+		<para>
+			The business activity is completed successfully by the close method. This will execute the <code>BusinessAgreementWithParticipantCompletion</code> protocol prior to returning. If there is no activity associated with the invoking thread then <code>UnknownTransactionException</code> is thrown. If the activity ultimately cancels then the <code>TransactionRolledBackException</code> is thrown. When complete, this operation disassociates the business activity from the current thread such that it becomes associated with no activity.
+		</para>
+		<para>
+			The cancel operation will terminate the business activity and return normally if it succeeded, while throwing an appropriate exception if it didn’t. If there is no activity associated with the invoking thread then <code>UnknownTransactionException</code> is thrown. Any participants that had previously completed will be informed to compensate for their work.
+		</para>
+		<para>
+			Some participants may have registered for the <code>BusinessAgreementWithCoordinatorCompletion</code> protocol, which requires the coordinator or application to inform them when all work that they need to do within the scope of a business activity has been performed. The application should therefore use the complete method to inform these participants.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-UserBusinessActivityFactory">
+			<title>UserBusinessActivityFactory</title>
+			<para>
+				UserBusinessActivities are obtained from a <code>UserBusinessActivityFactory</code>.
+			</para>
+		</formalpara>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-BusinessActivityManager">
+			<title>BusinessActivityManager</title>
+			<para>
+				The <interfacename>BusinessActivityManager</interfacename> interface represents the service/container/participant’s (service-side users) typical way in which to interact with the underlying business activity service implementation. As with <interfacename>UserBusinessActivity</interfacename> a <interfacename>BusinessActivityManager</interfacename> does not represent a specific activity, but rather is responsible for providing access to an implicit per-thread activity.
+			</para>
+		</formalpara>
+		<para>
+			A thread of control may require periods of non-transactionality so that it may perform work that is not associated with a specific activity. In order to do this it is necessary to disassociate the thread from any business activities. The suspend method accomplishes this, returning a <code>TxContext</code> instance, which is a handle on the activity. The thread is then no longer associated with any activity.
+		</para>
+		<para>
+			The <methodname>resume</methodname> method can be used to (re-)associate a thread with an activity (or activities) via its TxContext. Prior to association, the thread is disassociated with any activity with which it may be currently associated. If the <code>TxContext</code> is null, then the thread is associated with no activity. The <code>UnknownTransactionException</code> exception is thrown if the business activity that the TxContext refers to is invalid in the scope of the invoking thread.
+		</para>
+		<para>
+			The <methodname>currentTransaction</methodname> method returns the <code>TxContext</code> for the current business activity, or null if there is none. Unlike suspend, this method does not disassociate the current thread from the activity. This can be used to enable multiple threads to execute within the scope of the same business activity.
+		</para>
+		<para>
+			In order to register and resign participants with a business activity, the container or participant must use:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<emphasis>enlistForBusinessAgreementWithParticipantCompletion</emphasis>: enlist the specified participant with current business activity such that it will participate in the <code>BusinessAgreementWithParticipantCompletion</code> protocol; a unique identifier for the participant is also required. If there is no business activity associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the activity is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>enlistForBusinessAgreementWithCoordinatorCompletion</emphasis>: enlist the specified participant with current activity such that it will participate in the <code>BusinessAgreementWithCoordinatorCompletion</code> protocol; a unique identifier for the participant is also required. If there is no business activity associated with the invoking thread then the <code>UnknownTransactionException</code> exception is thrown. If the coordinator already has a participant enrolled with the same identifier, then <code>AlreadyRegisteredException</code> will be thrown. If the activity is not in a state where participants can be enrolled (for example, it is terminating) then <code>WrongStateException</code> will be thrown.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-API_for_the_Business_Activity_protocol-BusinessActivityManagerFactory">
+			<title>BusinessActivityManagerFactory</title>
+			<para>
+				BusinessActivityManagers are obtained from a <code>BusinessActivityManagerFactory</code>.
+			</para>
+		</formalpara>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactional_Web_Services.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,43 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Transactional_Web_Services">
+	<title>Transactional Web Services</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Transactional_Web_Services-Introduction">
+		<title>Introduction</title>
+		<para>
+			This chapter describes how to provide transactional support for new and existing Web services using the service-side facilities of XTS. It shows how new services can be made transactional with no additional programming, and how existing services can be made WS-T transaction-aware in a non-invasive fashion.
+		</para>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-Transactional_Web_Services-A_Transactional_Web_Service">
+		<title>A Transactional Web Service</title>
+		<para>
+			A Web service is a business-level entity. It encapsulates application logic needed to perform some domain-specific task, or is designed to delegate to a back-end system which executes that logic. Given it is part of application code, such non-functional requirements as transactionality should not impinge on its construction.
+		</para>
+		<para>
+			To support this notion, XTS provides a suite of components designed to work at the SOAP stack level, which deal with transactional matters on behalf of a Web service without requiring any changes to that service. In XTS two context handling components are registered with the SOAP server and deal with context management on behalf of the service without the service having to worry about context propagation issues itself. This is shown in the following figure.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Context_Handlers.png" format="PNG" />
+			</imageobject>
+			<caption>Context Handlers Registered with the SOAP Server</caption>
+		</mediaobject>
+		<para>
+			The detail of the context management that the context processor performs is unimportant to the Web service application logic, and is orthogonal to any work performed by any other protocol-specific context handlers too. However back-end systems which the Web service application logic uses (such as databases) are often interested in the front-end transaction context such that any operations invoked within its scope can be mapped onto a back-end transaction context. This is typically achieved at the back-end by wrapping a database driver in a veneer which implements both the interface of the original driver and hooks into the service-side API to access the transaction context details. The general architecture for this pattern is shown in the figure below.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Back-End_Integration.png" format="PNG" />
+			</imageobject>
+			<caption>General Pattern for Back-End Integration, Service Side</caption>
+		</mediaobject>
+		<para>
+			The missing element from this is the commit protocol which finally allows back-end work to be made durable or not at the end of a transaction. This is covered in the participant chapter where the participant/back-end relation is explored further.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/Transactions_Overview.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,302 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-Transactions_Overview">
+	<title>Transactions Overview</title>
+	<para>
+		Transactions have emerged as the dominant paradigm for coordinating interactions between parties in a distributed system, and in particular to manage applications that require concurrent access to shared data. Much of the JBossTS Web Service API is based on contemporary transaction APIs whose familiarity will enhance developer productivity and lessen the learning curve. While the following section provides the essential information that you should know before starting to use XTS for building transactional Web Services, it should not be treated as a definitive reference to all transactional technology.
+	</para>
+	<para>
+		A classic transaction is a unit of work that either completely succeeds, or fails with all partially completed work being undone. When a transaction is committed, all changes made by the associated requests are made durable, normally by committing the results of the work to a database. If a transaction should fail and is rolled back, all changes made by the associated work are undone. Transactions in distributed systems typically require the use of a transaction manager that is responsible for coordinating all of the participants that are part of the transaction.
+	</para>
+	<para>
+		The main components involved in using and defining transactional Web Services using XTS are illustrated in Figure 1.
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				A Transaction Service: The Transaction Service captures the model of the underlying transaction protocol and coordinates parties affiliated with the transaction according to that model.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A Transaction API: Provides an interface for transaction demarcation and the registration of participants.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				A Participant: The entity that cooperates with the transaction service on behalf of its associated business logic.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The Context: Captures the necessary details of the transaction such that participants can enlist within its scope.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Web_Services.png" format="PNG" />
+		</imageobject>
+		<caption>Web Services and XTS</caption>
+	</mediaobject>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-The_Coordinator">
+		<title>The Coordinator</title>
+		<para>
+			Associated with every transaction is a coordinator, which is responsible for governing the outcome of the transaction. The coordinator may be implemented as a separate service or may be co-located with the user for improved performance. Each coordinator is created by the transaction manager service, which is in effect a factory for those coordinators.
+		</para>
+	</formalpara>
+	<para>
+		A coordinator communicates with enrolled participants to inform them of the desired termination requirements, for instance, whether they should accept (for example, confirm) or reject (for example, cancel) the work done within the scope of the given transaction. For example, whether to purchase the (provisionally reserved) flight tickets for the user or to release them. An application/client may wish to terminate a transaction in a number of different ways (for example, confirm or cancel). However, although the coordinator will attempt to terminate in a manner consistent with that desired by the client, it is ultimately the interactions between the coordinator and the participants that will determine the actual final outcome.
+	</para>
+	<para>
+		A transaction manager is typically responsible for managing coordinators for many transactions. The initiator of the transaction (for example, the client) communicates with a transaction manager and asks it to start a new transaction and associate a coordinator with the transaction. Once created, the context can be propagated to Web services in order for them to associate their work with the transaction.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-The_Transaction_Context">
+		<title>The Transaction Context</title>
+		<para>
+			In order for a transaction to span a number of services, certain information has to be shared between those services in order to propagate information about the transaction. This information is known as the Context. Using XTS, the context is automatically propagated and processed by transaction-aware components of an application. Though XTS removes most of the work associated with propagating contexts, it is still instructive to understand what information is captured in a context:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				A transaction identifier which guarantees global uniqueness for an individual transaction;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The transaction coordinator location or endpoint address so participants can be enrolled.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Context_Flow.png" format="PNG" />
+		</imageobject>
+		<caption>Web Services and Context Flow</caption>
+	</mediaobject>
+	<para>
+		As shown in Figure 2, whenever an application message is sent, the XTS Client API automatically creates a context and embeds it into the message. Similarly, any transaction-aware services are able to extract that context using the XTS service-side infrastructure and use it to perform work within the context of a particular transaction – even though that transaction was initiated elsewhere on the Web! The value of this approach is that the business logic contained within the client application and services are not peppered with transaction-processing code.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-ACID_Transactions">
+		<title>ACID Transactions</title>
+		<para>
+			Traditionally, transaction processing systems support ACID properties. ACID is an acronym for Atomic, Consistent, Isolated, and Durable. A unit of work has traditionally been considered transactional only if the ACID properties are maintained:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Atomicity: The transaction executes completely or not at all.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Consistency: The effects of the transaction preserve the internal consistency of an underlying data structure.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Isolated: The transaction runs as if it were running alone with no other transactions running and is not visible to other transactions.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Durable: the transaction’s results will not be lost in the event of a failure.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Two_Phase_Commit">
+		<title>Two-Phase Commit</title>
+		<para>
+			The classical two-phase commit approach is the bedrock of JBossTS (and more generally of Web Services transactions). Two-phase commit provides coordination of parties that are involved in a transaction. In general, the flow of a two-phase commit transaction is as follows:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				A transaction is started, and some work is performed.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Once the work is finished, the two-phase commit begins.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The coordinator (transaction manager) of the transaction asks each resource taking part in the transaction whether it is prepared to commit.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If all resources respond positively, the coordinator instructs all work performed to be made durable (usually committed to a database).
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				If not, all work performed is rolled back (undone) such that the underlying data structures are in their original states.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<mediaobject>
+		<imageobject>
+			<imagedata fileref="images/Commit_Protocol.png" format="PNG" />
+		</imageobject>
+		<caption>The Two-Phase Commit Protocol</caption>
+	</mediaobject>
+	<note>
+		<para>
+			During two-phase commit transactions, coordinators and resources keep track of activity in non-volatile data stores so that they can recover in the case of a failure.
+		</para>
+	</note>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-The_synchronization_protocol">
+		<title>The synchronization protocol</title>
+		<para>
+			As well as the two-phase commit protocol, traditional transaction processing systems employ an additional protocol, often referred to as the synchronization protocol. If you recall the original ACID properties, then you’ll remember that Durability is important in the case where state changes have to be available despite failures. What this means is that applications interact with a persistence store of some kind (e.g., a database) and this can impose a significant overhead – disk access is orders of magnitude slower than access to main computer memory.
+		</para>
+	</formalpara>
+	<para>
+		One apparently obvious solution to this problem would be to cache the state in main memory and only operate on that for the duration of a transaction. Unfortunately you’d then need some way of being able to flush the state back to the persistent store before the transaction terminates, or risk losing the full ACID properties. This is what the synchronization protocol does, with Synchronization participants.
+	</para>
+	<para>
+		Synchronizations are informed that a transaction is about to commit, so they can, for example, flush cached state, which may be being used to improve performance of an application, to a durable representation prior to the transaction committing. They are then informed when the transaction has completed and in what state it completed.
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Synchronizations essentially turn the two-phase commit protocol into a four-phase protocol:
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Before the transaction starts the two-phase commit, all registered Synchronizations are informed. Any failure at this point will cause the transaction to roll back.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				The coordinator then conducts the normal two-phase commit protocol.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Once the transaction has terminated, all registered Synchronizations are informed. However, this is a courtesy invocation because any failures at this stage are ignored: the transaction has terminated so there’s nothing to affect.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		Unlike the two-phase commit protocol, the synchronization protocol does not have the same failure requirements. For example, Synchronization participants don’t need to make sure they can recover in the event of failures; this is because any failure before the two-phase commit protocol completes means the transaction will roll back, and failures after it has completed can’t affect the data the Synchronization participants were managing.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Optimizations_to_the_protocol">
+		<title>Optimizations to the protocol</title>
+		<para>
+			There are several variants to the standard two-phase commit protocol that are worth knowing about because they can have an impact on performance and failure recovery. We shall briefly describe those that are the most common variants on the protocol:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Presumed abort: if a transaction is going to roll back then it may simply record this information locally and tell all enlisted participants. Failure to contact a participant has no affect on the transaction outcome; the transaction is effectively informing participants as a courtesy. Once all participants have been contacted the information about the transaction can be removed. If a subsequent request for the status of the transaction occurs there will be no information available and the requestor can assume that the transaction has aborted (rolled back). This optimization has the benefit that no information about participants need be made persistent until the transaction has decided to commit (i.e., progressed to the end of the prepare phase), since any failure prior to this point will be assumed to be an abort of the transaction.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				One-phase: if there is only a single participant involved in the transaction, the coordinator need not drive it through the prepare phase. Thus, the participant will simply be told to commit and the coordinator need not record information about the decision since the outcome of the transaction is solely down to the participant.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Read-only: when a participant is asked to prepare, it can indicate to the coordinator that no information or data that it controls has been modified during the transaction. Such a participant does not need to be informed about the outcome of the transaction since the fate of the participant has no affect on the transaction. As such, a read-only participant can be omitted from the second phase of the commit protocol.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Non_atomic_transactions_and_heuristic_outcomes">
+		<title>Non-atomic transactions and heuristic outcomes</title>
+		<para>
+			In order to guarantee atomicity, the two-phase commit protocol is necessarily blocking. What this means is that as a result of failures, participants may remain blocked for an indefinite period of time even if failure recovery mechanisms exist. Some applications and participants simply cannot tolerate this blocking.
+		</para>
+	</formalpara>
+	<para>
+		To break this blocking nature, participants that have got past the prepare phase are allowed to make autonomous decisions as to whether they commit or rollback: such a participant must record this decision in case it is eventually contacted to complete the original transaction. If the coordinator eventually informs the participant of the transaction outcome and it is the same as the choice the participant made, then there’s no problem. However, if it is contrary, then a non-atomic outcome has obviously happened: a heuristic outcome.
+	</para>
+	<para>
+		How this heuristic outcome is reported to the application and resolved is usually the domain of complex, manually driven system administration tools, since in order to attempt an automatic resolution requires semantic information about the nature of participants involved in the transactions.
+	</para>
+	<para>
+		Precisely when a participant makes a heuristic decision is obviously implementation dependant. Likewise, the choice the participant makes (to commit or to roll back) will depend upon the implementation and possibly the application/environment in which it finds itself. The possible heuristic outcomes are:
+	</para>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Heuristic rollback: the commit operation failed because some or all of the participants unilaterally rolled back the transaction.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Heuristic commit: an attempted rollback operation failed because all of the participants unilaterally committed. This may happen if, for example, the coordinator was able to successfully prepare the transaction but then decided to roll it back (for example, it could not update its log) but in the meanwhile the participants decided to commit.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Heuristic mixed: some updates (participants) were committed while others were rolled back.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Heuristic hazard: the disposition of some of the updates is unknown. For those which are known, they have either all been committed or all rolled back.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<para>
+		Heuristic decisions should be used with care and only in exceptional circumstances since there is the possibility that the decision will differ from that determined by the transaction service and will thus lead to a loss of integrity in the system. Having to perform resolution of heuristics is something you should try to avoid, either by working with services/participants that don’t cause heuristics, or by using a transaction service that provides assistance in the resolution process.
+	</para>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-A_New_Transaction_Protocol">
+		<title>A New Transaction Protocol</title>
+		<para>
+			Many component technologies offer mechanisms for coordinating ACID transactions based on two-phase commit semantics (i.e., CORBA/OTS, JTS/JTA, MTS/MSDTC). ACID transactions are not suitable for all Web services transactions since:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Classic ACID transactions are predicated on the idea that an organization that develops and deploys applications does so using their own infrastructure, typically an Intranet. Ownership meant transactions operated in a trusted and predictable manner. To assure ACIDity, potentially long-lived locks could be kept on underlying data structures during two-phase commit. Resources could be used for any period of time and released when the transaction was complete. In the Web services arena, these assumptions are no longer valid. One obvious reason is that the owners of data exposed through a Web service will refuse to allow their data to be locked for extended periods since to allow such locks invites denial-of-service.
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				All application infrastructures are generally owned by a single party, systems using classical ACID transactions normally assume that participants in a transaction will obey the will of the transaction manager and only infrequently decide to make unilateral decisions which will hamper other participants in a transaction. On the contrary, Web services participating in a transaction can effectively decide to resign from the transaction at any time, and the consumer of the service generally has little in the way of quality of service guarantees to prevent this.
+			</para>
+		</listitem>
+	</itemizedlist>
+	<formalpara id="form-Transactions_Web_Services_Programmers_Guide-Transactions_Overview-Adressing_the_Problems_of_Transactioning_in_Loosely_Coupled_Systems">
+		<title>Adressing the Problems of Transactioning in Loosely Coupled Systems</title>
+		<para>
+			Though extended transaction models which relax the ACID properties have been proposed over the years, to implement these concepts for the Web services architecture WS-T provides a new transaction protocol. XTS is designed to accommodate four underlying requirements inherent in any loosely coupled architecture like Web services:
+		</para>
+	</formalpara>
+	<itemizedlist>
+		<listitem>
+			<para>
+				Ability to handle multiple successful outcomes to a transaction, with the ability to involve operations whose effects may not be isolated or durable;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Coordination of autonomous parties whose relationships are governed by contracts rather than the dictates of a central design authority;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Discontinuous service, where parties are anticipated to suffer outages during their lifetime, and coordinated work must be able to survive such outages;
+			</para>
+		</listitem>
+		<listitem>
+			<para>
+				Interoperation using XML over multiple communication protocols – XTS chooses to use SOAP encoding carried over HTTP for the first release and other SOAP-friendly transports for future releases.
+			</para>
+		</listitem>
+	</itemizedlist>
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/WS-C_WS-Atomic_Transaction_and_WS-Business_Activity_Overview.xml	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,354 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview">
+	<title>WS-C, WS-Atomic Transaction and WS-Business Activity Overview</title>
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-Introduction">
+		<title>Introduction</title>
+		<para>
+			This section provides fundamental concepts associated with WS-C, WS-Atomic Transaction and WS-Business Activity. All of these concepts are defined in the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. WS-C, WS-Atomic Transaction and WS-Business Activity principles are discussed throughout this guide.
+		</para>
+		<note>
+			<para>
+				If you are well versed in the WS-C, WS-Atomic Transaction and WS-Business Activity specifications then you may want to just skim through this part of the manual.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-WS_Coordination">
+		<title>WS-Coordination</title>
+		<para>
+			In general terms, coordination is the act of one entity (known as the coordinator) disseminating information to a number of participants for some domain-specific reason. This reason could be in order to reach consensus on a decision like in a distributed transaction protocol, or simply to guarantee that all participants obtain a specific message, as occurs in a reliable multicast environment. When parties are being coordinated, information known as the coordination context is propagated to tie together operations which are logically part of the same coordinated work or activity. This context information may flow with normal application messages, or may be an explicit part of a message exchange and is specific to the type of coordination being performed.
+		</para>
+		<para>
+			The fundamental idea underpinning WS-Coordination is that there is a generic need for a coordination infrastructure in a Web services environment. The WS-Coordination specification defines a framework that allows different coordination protocols to be plugged-in to coordinate work between clients, services and participants, as shown in Figure 4.
+		</para>
+		<para>
+			At this level, an activity is minimally specified and is simply created, made to run, and then completed.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-C_Architecture.png" format="PNG" />
+			</imageobject>
+			<caption>WS-C architecture</caption>
+		</mediaobject>
+		<para>
+			Whatever coordination protocol is used, and in whatever domain it is deployed, the same generic requirements are present:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Instantiation (or activation) of a new coordinator for the specific coordination protocol, for a particular application instance;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Registration of participants with the coordinator, such that they will receive that coordinator’s protocol messages during (some part of) the application’s lifetime;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Propagation of contextual information between Web services that comprise the application;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					An entity to drive the coordination protocol through to completion.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The first three of these points are directly the concern of WS-Coordination while the fourth is the responsibility of a third-party entity, usually the client application that controls the application as a whole. These four WS-Coordination roles and their interrelationships are shown in Figure 5.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-C_Infrastructure.png" format="PNG" />
+			</imageobject>
+			<caption>WS-C infrastructure</caption>
+		</mediaobject>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Coordination-Activation">
+			<title>Activation</title>
+			<para>
+				The WS-Coordination framework exposes an Activation Service which supports the creation of coordinators for specific protocols and their associated contexts. The process of invoking an activation service is done asynchronously, and so the specification defines both the interface of the activation service itself, and that of the invoking service, so that the activation service can call back to deliver the results of the activation – namely a context that identifies the protocol type and coordinator location. These interfaces are presented in Figure 6, where the activation service has a one-way operation that expects to receive a <code>CreateCoordinationContext</code> message and correspondingly the service that sent the <code>CreateCoordinationContext</code> message expects to be called back with a <code>CreateCoordinationContextResponse</code> message, or informed of a problem via an <code>Error</code> message.
+			</para>
+		</formalpara>
+<screen>
+&lt;!-- Activation Service portType Declaration --&gt;
+&lt;wsdl:portType name="ActivationCoordinatorPortType"&gt;
+	&lt;wsdl:operation name="CreateCoordinationContext"&gt;
+		&lt;wsdl:input 
+		message="wscoor:CreateCoordinationContext"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;
+	
+&lt;!-- Activation Requester portType Declaration --&gt;
+&lt;wsdl:portType name="ActivationRequesterPortType"&gt;
+	&lt;wsdl:operation 
+		name="CreateCoordinationContextResponse"&gt;
+		&lt;wsdl:input 
+		message="wscoor:CreateCoordinationContextResponse"/&gt;
+	&lt;/wsdl:operation&gt;
+	&lt;wsdl:operation name="Error"&gt;
+		&lt;wsdl:input message="wscoor:Error"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;\
+</screen>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Coordination-Registration">
+			<title>Registration</title>
+			<para>
+				Once a coordinator has been instantiated and a corresponding context created by the activation service, a Registration Service is created and exposed. This service allows participants to register to receive protocol messages associated with a particular coordinator. Like the activation service, the registration service assumes asynchronous communication and so specifies WSDL for both registration service and registration requester, as shown below.
+			</para>
+		</formalpara>
+<screen>
+&lt;!-- Registration Service portType Declaration --&gt;
+&lt;wsdl:portType name="RegistrationCoordinatorPortType"&gt;
+	&lt;wsdl:operation name="Register"&gt;
+		&lt;wsdl:input message="wscoor:Register"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;
+	
+&lt;!-- Registration Requester portType Declaration --&gt;
+&lt;wsdl:portType name="RegistrationRequesterPortType"&gt;
+	&lt;wsdl:operation name="RegisterResponse"&gt;
+		&lt;wsdl:input message="wscoor:RegisterResponse"/&gt;
+	&lt;/wsdl:operation&gt;
+	&lt;wsdl:operation name="Error"&gt;
+		&lt;wsdl:input message="wscoor:Error"/&gt;
+	&lt;/wsdl:operation&gt;
+&lt;/wsdl:portType&gt;
+</screen>
+		<para>
+			When a participant is registered with a coordinator through the registration service, it receives messages that the coordinator sends (for example, “prepare to complete” and “complete” messages if a two-phase protocol is used); where the coordinator’s protocol supports it, participants can also send messages back to the coordinator.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Coordination-Completion">
+			<title>Completion</title>
+			<para>
+				The role of terminator is generally played by the client application, which at an appropriate point will ask the coordinator to perform its particular coordination function with any registered participants – to drive the protocol through to its completion. On completion, the client application may be informed of an outcome for the activity which may vary from simple succeeded/failed notification through to complex structured data detailing the activity’s status.
+			</para>
+		</formalpara>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-WS_Transaction">
+		<title>WS-Transaction</title>
+		<para>
+			In the past, making traditional transaction systems talk to one another was a holy grail that was rarely achieved. With the advent of Web services, there is an opportunity to leverage an unparalleled interoperability technology to splice together existing transaction processing systems that already form the backbone of enterprise level applications.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_Coordination_Foundations">
+			<title>WS-Coordination Foundations</title>
+			<para>
+				An important aspect of WS-Transaction that differentiates it from traditional transaction protocols is that a synchronous request/response model is not assumed. This model derives from the fact that WS-Transaction is, as shown in the figure below, layered upon the WS-Coordination protocol whose own communication patterns are asynchronous by default.
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-Coordination_Foundations.png" format="PNG" />
+			</imageobject>
+			<caption>WS-Coordination WS-Atomic Transaction and WS-Business Activity</caption>
+		</mediaobject>
+		<para>
+			Web Services Coordination provides a generic framework for specific coordination protocols, like WS-Transaction, to be plugged in. Recall that WS-Coordination provides only context management – it allows contexts to be created and activities to be registered with those contexts. WS-Transaction leverages the context management framework provided by WS-Coordination in two ways. Firstly it extends the WS-Coordination context to create a transaction context. Secondly, it augments the activation and registration services with a number of additional services (Completion, CompletionWithAck, PhaseZero, 2PC, OutcomeNotification, BusinessAgreement, and BusinessAgreementWithComplete) and two protocol message sets (one for each of the transaction models supported in WS-Transaction) to build a fully-fledged transaction coordinator on top the WS-Coordination protocol infrastructure.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_Transaction_Architecture">
+			<title>WS-Transaction Architecture</title>
+			<para>
+				WS-Transaction supports the notion of the service and participant as distinct roles, making the distinction between a transaction-aware service and the participants that act on behalf of the service during a transaction: transactional services deal with business-level protocols, while the participants handle the underlying WS-Transaction protocols, as shown above.
+			</para>
+		</formalpara>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/WS-Transaction_Global_View.png" format="PNG" />
+			</imageobject>
+			<caption>WS-Transaction Global View</caption>
+		</mediaobject>
+		<para>
+			A transaction-aware service encapsulates the business logic or work that is required to be conducted within the scope of a transaction. This work cannot be confirmed by the application unless the transaction also commits and so control is ultimately removed from the application and placed into the transaction’s domain.
+		</para>
+		<para>
+			The participant is the entity that, under the dictates of the transaction coordinator, controls the outcome of the work performed by the transaction-aware Web service. In the figure above each service is shown with one associated participant that manages the transaction protocol messages on behalf of its service, while in the figure below, there is a close-up view of a single service, and a client application with their associated participants.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Transactional_Service_and_Participant.png" format="PNG" />
+			</imageobject>
+			<caption>Transactional Service and Participant</caption>
+		</mediaobject>
+		<para>
+			The transaction-aware Web service and its participant both serve a shared transactional resource, and there is a control relationship between them through some API - which on the Java platform is JAXTX. In the example shown in the figure above, it is assumed that the database is accessed through a transactional JDBC database driver, where SQL statements are sent to the database for processing via that driver, but where those statements will be tentative and only commit if the transaction does. In order to do this, the driver/database will associate a participant with the transaction which will inform the database of the transaction outcome. Since all transactional invocations on the Web service carry a transaction context, the participant working with the database is able to identify the work that the transactional service did within the scope of a specific transaction and either commit or rollback the work.
+		</para>
+		<para>
+			At the client end, things are less complex. Through its API, the client application registers a participant with the transaction through which it controls transaction termination.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_Transaction_Models">
+			<title>WS-Transaction Models</title>
+			<para>
+				Given that traditional transaction models are not appropriate for Web services, the following question must be posed, “what type of model or protocol is appropriate?” The answer to that question is that that no one specific protocol is likely to be sufficient, given the wide range of situations that Web service transactions are likely to be deployed within. Hence the WS-Transaction specification proposes two distinct models, where each supports the semantics of a particular kind of B2B interaction. The following sections shall discuss these two WS-Transaction models.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				As with WS-Coordination, the two WS-Transaction models are extensible allowing implementations to tailor the protocols as they see fit (for example, to suit their deployment environments).
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-Atomic_Transactions_AT">
+			<title>Atomic Transactions (AT)</title>
+			<para>
+				An atomic transaction or AT is similar to traditional ACID transactions and intended to support short-duration interactions where ACID semantics are appropriate. Within the scope of an AT, services typically enroll transaction-aware resources, such as databases and message queues, indirectly as participants under the control of the transaction. When the transaction terminates, the outcome decision of the AT is then propagated to each enlisted resource via the participant, and the appropriate commit or rollback actions are taken by each.
+			</para>
+		</formalpara>
+		<para>
+			This protocol is very similar to those employed by traditional transaction systems that already form the backbone of an enterprise. It is assumed that all services (and associated participants) provide ACID semantics and that any use of atomic transactions occurs in environments and situations where this is appropriate: in a trusted domain, over short durations.
+		</para>
+		<para>
+			To begin an atomic transaction, the client application firstly locates a WS-Coordination coordinator Web service that supports WS-Transaction. Once located, the client sends a WS-Coordination CreateCoordinationContext message to the activation service specifying http://schemas.xmlsoap.org/ws/2004/10/wsat as its coordination type and will get back an appropriate WS-Transaction context from the activation service. The response to the CreateCoordinationContext message, the transaction context, has its CoordinationType element set to the WS-Atomic Transaction namespace, http://schemas.xmlsoap.org/ws/2004/10/wsat, and also contains a reference to the atomic transaction coordinator endpoint (the WS-Coordination registration service) where participants can be enlisted.
+		</para>
+		<para>
+			After obtaining a transaction context from the coordinator, the client application then proceeds to interact with Web services to accomplish its business-level work. With each invocation on a business Web service, the client inserts the transaction context into a SOAP header block, such that each invocation is implicitly scoped by the transaction – the toolkits that support WS-Atomic Transaction-aware Web services provide facilities to correlate contexts found in SOAP header blocks with back-end operations.
+		</para>
+		<para>
+			Once all the necessary application level work has been completed, the client can terminate the transaction, with the intent of making any changes to the service state permanent. To do this, the client application first registers its own participant for the Completion protocol. Once registered, the participant can instruct the coordinator either to try to commit or rollback the transaction. When the commit or rollback operation has completed, a status is returned to the participant to indicate the outcome of the transaction.
+		</para>
+		<para>
+			While the completion protocol is straightforward, they hide the fact that in order to resolve to an outcome that several other protocols need to be executed.
+		</para>
+		<para>
+			The first of these protocols is the optional Volatile2PC. The Volatile2PC protocol is the WS-Atomic Transaction equivalent of the synchronization protocol we discussed earlier. It is typically executed where a Web service needs to flush volatile (cached) state, which may be being used to improve performance of an application, to a database prior to the transaction committing. Once flushed, the data will then be controlled by a two-phase aware participant.
+		</para>
+		<para>
+			All Volatile2PC participants are told that the transaction is about to complete (via the prepare message) and they can respond with either the prepared, aborted or readonly message; any failures at this stage will cause the transaction to rollback.
+		</para>
+		<para>
+			After Volatile2PC prepare, the next protocol to execute in WS-Atomic Transaction is Durable2PC. The Durable2PC (an abbreviation of the term two-phase commit) protocol is at the very heart of WS-Atomic Transaction and is used to bring about the necessary consensus between participants in a transaction such that the transaction can safely be terminated.
+		</para>
+		<para>
+			The two-phase commit protocol is used to ensure atomicity between participants, and is based on the classic two-phase commit with presumed abort technique. During the first phase, when the coordinator sends the prepare message, a participant must make durable any state changes that occurred during the scope of the transaction, such that these changes can either be rolled back or committed later. That is, any original state must not be lost at this point as the atomic transaction could still roll back. If the participant cannot prepare then it must inform the coordinator (via the aborted message) and the transaction will ultimately roll back. If the participant is responsible for a service that did not do any work during the course of the transaction, or at least did not do any work that modified any state, it can return the readonly message and it will be omitted from the second phase of the commit protocol. Otherwise, the prepared message is sent by the participant.
+		</para>
+		<para>
+			Assuming no failures occurred during the first phase, in the second phase the coordinator sends the commit message to participants, who will make permanent the tentative work done by their associated services.
+		</para>
+		<para>
+			If a transaction involves only a single participant, WS-Atomic Transaction supports a one-phase commit optimization. Since there is only one participant, its decisions implicitly reach consensus, and so the coordinator need not drive the transaction through both phases. In the optimized case, the participant will simply be told to commit and the transaction coordinator need not record information about the decision since the outcome of the transaction is solely down to that single participant.
+		</para>
+		<para>
+			The figure below<footnote>
+			<para>
+				Redrawn from the WS-Atomic Transaction specification.
+			</para>
+			</footnote> shows the state transitions of a WS-Atomic Transaction and the message exchanges between coordinator and participant; the coordinator generated messages are shown in the solid line, whereas the participant messages are shown by dashed lines.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/Commit_State_Transitions.png" format="PNG" />
+			</imageobject>
+			<caption>Two-Phase Commit State Transitions</caption>
+		</mediaobject>
+		<para>
+			Once the 2PC protocol has finished, the Completion protocol that originally began the termination of the transaction can complete, and inform the client application whether the transaction was committed or rolled back. Additionally, the Volatile2PC protocol may complete.
+		</para>
+		<para>
+			Like the prepare phase of Volatile2PC, the final phase is optional and can be used to inform participants when the transaction has completed, typically so that they can release resources (for example, put a database connection back into the pool of connections).
+		</para>
+		<para>
+			Any registered Volatile2PC participants are invoked after the transaction has terminated and are told the state in which the transaction completed (the coordinator sends either the Committed or Aborted message). Since the transaction has terminated, any failures of participants at this stage are ignored –it is essentially a courtesy, and has no bearing on the outcome of the transaction.
+		</para>
+		<para>
+			Finally, after having gone through each of the stages in an AT, it is possible to see the intricate interweaving of individual protocols that goes to make up the AT as a whole in the following figure.
+		</para>
+		<mediaobject>
+			<imageobject>
+				<imagedata fileref="images/AT_Model.png" format="PNG" />
+			</imageobject>
+			<caption>The AT Model</caption>
+		</mediaobject>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-Business_Activities_BA">
+			<title>Business Activities (BA)</title>
+			<para>
+				Most business-to-business applications require transactional support in order to guarantee consistent outcome and correct execution. These applications often involve long running computations, loosely coupled systems and components that do not share data, location, or administration and it is difficult to incorporate atomic transactions within such architectures. For example, an online bookshop may reserve books for an individual for a specific period of time, but if the individual does not purchase the books within that period they will be “put back onto the shelf” for others to buy. Furthermore, because it is not possible for anyone to have an infinite supply of stock, some online shops may appear to users to reserve items for them, but in fact may allow others to pre-empt that reservation (for instance, the same book may be “reserved” for multiple users concurrently); a user may subsequently find that the item is no longer available, or may have to be reorder!
 ed specially for them.
+			</para>
+		</formalpara>
+		<para>
+			A business activity or BA is designed specifically for these kinds of long-duration interactions, where exclusively locking resources is impossible or impractical. In this model services are requested to do work, and where those services have the ability to undo any work, they inform the BA such that if the BA later decides the cancel the work (for instance if the business activity suffers a failure), it can instruct the service to execute its undo behavior. The key point for Business Activities is that how services do their work and provide compensation mechanisms is not the domain of the WS-Business Activity specification, but an implementation decision for the service provider.
+		</para>
+		<para>
+			The WS- Business Activity simply defines a protocol for Web services-based applications to enable existing business processing and workflow systems to wrap their proprietary mechanisms and interoperate across implementations and business boundaries.
+		</para>
+		<para>
+			A business activity may be partitioned into scopes, where a scope is a business task or unit of work using a collection of Web services. Such scopes can be nested to arbitrary degrees, forming parent and child relationships, where a parent scope has the ability to select which child tasks are to be included in the overall outcome protocol for a specific business activity, and so clearly non-atomic outcomes are possible. In a similar manner to traditional nested transactions, if a child task experiences an error, it can be caught by the parent who may be able to compensate and continue processing.
+		</para>
+		<para>
+			When a child task completes it can either leave the business activity or signal to the parent that the work it has done can be compensated later. In the latter case, the compensation task may be called by the parent should it ultimately need to undo the work performed by the child.
+		</para>
+		<para>
+			Unlike the WS-Atomic Transaction protocol model, where participants inform the coordinator of their state only when asked, a task within a business activity can specify its outcome to the parent directly without waiting for a request. This feature is useful when tasks fail such that the notification can be used by business activity exception handler to modify the goals and drive processing forward without having to meekly wait until the end of the transaction to admit to having failed – a well designed Business Activities should be proactive, if it is to perform well.
+		</para>
+		<para>
+			Underpinning all of this are three fundamental assumptions:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					All state transitions are reliably recorded, including application state and coordination metadata (the record of sent and received messages);
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					All request messages are acknowledged, so that problems are detected as early as possible. This avoids executing unnecessary tasks and can also detect a problem earlier when rectifying it is simpler and less expensive;
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					As with atomic transactions, a response is defined as a separate operation and not as the output of the request. Message input-output implementations will typically have timeouts that are too short for some business activity responses. If the response is not received after a timeout, it is resent. This is repeated until a response is received. The request receiver discards all but one identical request received.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			As with atomic transactions, the business activity model has multiple protocols: <code>BusinessAgreementWithParticipantCompletion</code> and <code>BusinessAgreementWithCoordinatorCompletion</code>. However, unlike the AT protocol which is driven from the coordinator down to participants, this protocol is driven much more from the participants upwards.
+		</para>
+		<para>
+			Under the <code>BusinessAgreementWithParticipantCompletion</code> protocol, a child activity is initially created in the Active state; if it finishes the work it was created to do and no more participation is required within the scope of the BA (such as when the activity operates on immutable data), then the child can unilaterally send an exited message to the parent. However, if the child task finishes and wishes to continue in the BA then it must be able to compensate for the work it has performed. In this case it sends a completed message to the parent and waits to receive the final outcome of the BA from the parent. This outcome will either be a close message, meaning the BA has completed successfully or a compensate message indicating that the parent activity requires that the child task reverse its work.
+		</para>
+		<para>
+			The <code>BusinessAgreementWithCoordinatorCompletion</code> protocol is identical to the <code>BusinessAgreementWithParticipantCompletion</code> protocol with the exception that the child cannot autonomously decide to end its participation in the business activity, even if it can be compensated. Rather the child task relies upon the parent to inform it when the child has received all requests for it to perform work which the parent does by sending the complete message to the child. The child then acts as it does in the <code>BusinessAgreementWithParticipantCompletion</code> protocol.
+		</para>
+		<para>
+			The crux of the BA model compared to the AT model is that is allows the participation of services that cannot or will not lock resources for extended periods.
+		</para>
+		<para>
+			While the full ACID semantics are not maintained by a BA, consistency can still be maintained through compensation, though the task of writing correct compensating actions (and thus overall system consistency) is delegated to the developers of the services under control of the BA. Such compensations may use backward error recovery, but will typically employ forward recovery.
+		</para>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-Application_Messages">
+			<title>Application Messages</title>
+			<para>
+				Application messages are the requests and responses that are sent between parties that constitute the work of a business process. Any such messages are considered opaque by XTS, and there is no mandatory message format, protocol binding, or encoding style so the developer is free to use any appropriate Web services protocol. In XTS, the transaction context is propagated within the headers of SOAP messages.
+			</para>
+		</formalpara>
+		<note>
+			<para>
+				XTS provides out-of-box support for service developers building WS-T-aware services on the JBoss, Weblogic and Glue platforms1. The provision of interceptors for automatic context handling at both client and service significantly simplifies the developer’s workload, allowing the developer to concentrate on writing the business logic without having to worry about the transactional infrastructure getting in the way. The interceptors simply add and remove context elements to application messages without altering the semantics of those messages. Any service which understands what to do with a WS-C context can use it, services which do not understand the context (those services that are not WS-C, WS-Atomic Transaction and WS-Business Activity-aware) may ignore the context; the important point here is that XTS manages contexts without user intervention.
+			</para>
+		</note>
+		<formalpara id="form-Transactions_Web_Services_Programmers_Guide-WS_Transaction-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Messages">
+			<title>WS-C, WS-Atomic Transaction and WS-Business Activity Messages</title>
+			<para>
+				Although the application or service developer rarely sees or is interested in the messages exchanged by the transactional infrastructure (the transaction manager and any participants), it is useful to understand what kinds of exchanges occur so that the underlying model can be fitted in to an overall architecture.
+			</para>
+		</formalpara>
+		<para>
+			In XTS, WS-C, WS-Atomic Transaction and WS-Business Activity-specific messages are transported using SOAP messaging over HTTP. The types of messages that are propagated include instructions to perform standard transaction operations like begin, prepare.
+		</para>
+		<note>
+			<para>
+				XTS messages do not interfere in any way, shape, or form, with the application messages, and nor is there any requirement for an application to use the same transport as the transaction-specific messages. For example, it is quite reasonable for a client application to deliver its application-specific messages using SOAP RPC over SMTP even though under the covers the XTS messages are delivered using a different mechanism.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Transactions_Web_Services_Programmers_Guide-WS_C_WS_Atomic_Transaction_and_WS_Business_Activity_Overview-Summary">
+		<title>Summary</title>
+		<para>
+			XTS provides a coordination infrastructure designed to allow transactions to run between enterprises across the Internet. That infrastructure is based on the WS-C, WS-Atomic Transaction and WS-Business Activity specifications. It supports two kinds of transactions: atomic transactions and business activities, which can be combined in arbitrary ways to map elegantly onto the transactional requirements of the underlying problem. The use of the whole infrastructure is simple due to the fact that its functionality is exposed through a simple transactioning API. Furthermore XTS provides all of the necessary plumbing to keep application and transactional aspects of an application separate, and to ensure that the transactionality of a system does not interfere with the functional aspects of the system itself.
+		</para>
+	</section>
+
+</chapter>
+

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/AT_Model.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/AT_Model.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Back-End_Integration.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Back-End_Integration.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_Protocol.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_Protocol.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_State_Transitions.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Commit_State_Transitions.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Flow.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Flow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Handlers.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Context_Handlers.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Transaction_Control.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Transaction_Control.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Transactional_Service_and_Participant.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Transactional_Service_and_Participant.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Architecture.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Architecture.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Infrastructure.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-C_Infrastructure.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Coordination_Foundations.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Coordination_Foundations.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Transaction_Global_View.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/WS-Transaction_Global_View.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Web_Services.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/Web_Services.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg	                        (rev 0)
+++ labs/jbosstm/enterprise/trunk/Transactions_Web_Services_Programmers_Guide/en-US/images/icon.svg	2008-09-29 22:15:16 UTC (rev 23199)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>




More information about the jboss-svn-commits mailing list